12

ここの仕様によると: http://www.w3.org/TR/CSS21/selector.html#adjacent-selectors

隣接する兄弟セレクターの構文は、E1 + E2 です。ここで、E2 はセレクターのサブジェクトです。E1 と E2 がドキュメント ツリーで同じ親を共有し、E1 が E2 の直前にある場合、セレクターは一致し、非要素ノード(テキスト ノードやコメントなど) は無視されます。

では、要素のない兄弟ノードを選択するにはどうすればよいでしょうか。例: 次の html で、「非要素テキスト」テキストを選択するにはどうすればよいでしょうか?

<div><label>Some text here</label> Non-element text</div>
4

2 に答える 2

15

できません。CSS セレクターは、要素ノードのみを選択できます。これが、隣接兄弟コンビネータが説明どおりに機能する理由です。

スタイルを適用する必要がある場合は、それらを に適用し、divでオーバーライドしてみてくださいlabel。もちろん、これは適用しているスタイルによって異なります。一部のスタイルは元に戻すことができないか、継承の対象となるためです。

于 2012-11-20T05:06:51.100 に答える
1

前述のように、CSS セレクターは要素ノードのみを選択できます。

問題を解決するには、テキスト ノードを要素でラップしてこの要素にスタイルを適用するか、コンテナ要素にスタイルを適用してラベル要素でオーバーライドします。

于 2012-11-20T05:09:18.613 に答える