2016-11-23 13 views
0

ノードを持つangle2 Webアプリケーションがあり、すべてをバンドルするためにwebpackを使用しています。"after:"または ":before"は、angle2アプリでレンダリングしていません

問題は、プロセスのどこかで、それらの擬似要素のクラスを追加しても、DOMには表示されず、レンダリングされません。私たちのアプリは、スクリプトタグにスタイルを直接注入し、css属性を各角度成分に適用するためのIDを追加します。

私たちはかなり長い間このことに苦労していましたが、私が見ていない小さな事や、私たちのスタックのレンダリングの問題のような大きな事実になるかどうかは考えていません。皆さんは何か考えていますか?ここで

は、レンダリングされるCSSです:

<style> 

//blah blah blah some other styles 

.signUp-userInput[_ngcontent-xtv-3]:before { 
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMyIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDEzIDE1Ij48ZyBmaWxsPSIjNTU1IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxlbGxpcHNlIGN4PSI2LjUiIGN5PSIzLjUiIHJ4PSIzLjUiIHJ5PSIzLjUiLz48cGF0aCBkPSJNMTMgMTVjMC00LTMtNy02LjUtN1MwIDExIDAgMTVoMTN6Ii8+PC9nPjwvc3ZnPg==); 
    background-repeat: no-repeat; 
    content: ''; 
    display: block; 
    height: 16px; 
    left: 0; 
    position: absolute; 
    width: 16px; } 

</style> 

そして、これは、マークアップです:

<form _ngcontent-xtv-3="" action="" method="post" class="ng-untouched ng-pristine ng-valid"> 
    <input _ngcontent-xtv-3="" class="signUp-userInput" id="username" placeholder="Enter your email address" type="text"> 
    <input _ngcontent-xtv-3="" class="signUp-passInput" id="password" placeholder="Create a password" type="password"> 
    <button _ngcontent-xtv-3="" type="submit">Sign Up</button> 
</form> 
+0

':before'の代わりに ':: before'を試してください –

+0

既に試しましたが、どちらもうまくいきませんでした:( – Fabio

+0

:beforeはフォーム要素(入力)や画像などの置き換えられた要素要素。 つまり、純粋なCSSでは不可能です。達成しようとしているのは何ですか? –

答えて

2

擬似要素contentをオフに働きます。 inputは、がコンテンツを持つことができない、つまり、ホスト他の要素またはテキストノードさえできない要素です。つまり、:beforeでも:afterでもinput要素には使用できません。

input要素をそれぞれlabelにラップして、:beforeスタイルを適用することをお勧めします。

+0

はい、それはまさに問題でした。最後に、それぞれのラベルをスタイリングするもう1つの方法を試しましたが、実際には、他の要素を使用してそれを達成し、それらを絶対的に配置できます。その中に擬似要素を得ることができる要素です。ありがとう! – Fabio

関連する問題