0

次のhtmlが必要だとします:

<div class='row'>

  <div class='cell'> 
    <span class='image'> </span>
    Image Cell
  </div>

  <div class='cell'>
     Regular Cell
  </div>

</div>

span 要素を含む div と、最初の子として span 要素を持たない div セルを明確に選択することは可能ですか? jsなしでこれをやろうとしています。

4

4 に答える 4

1

HTMLを少し変更して、スパンを持つdivにCSSクラスを追加し、それを「セレクター」として使用できます

 <div class='cell haschild'> 
   <span class='image'> </span>
   Image Cell
 </div>

 <div class='cell'>
    Regular Cell
 </div>

于 2013-09-06T15:54:39.487 に答える
1

CSS に組み込まれていない疑似:hasクラス /:parent疑似クラス /コンビネーターのようなものを探しています。<現在一つもありません。これを既存のエンジンに追加することには明らかに重大なパフォーマンス上の懸念があるため、何度も値上げと破線が行われてきました。:-)このテーマに関する短い記事が興味深いと思われるかもしれません。

于 2013-09-06T15:54:55.423 に答える
0

いいえ。これを必要としたのはあなたが初めてではありません。私は何年も前に、CSS と DOM の解析とブラウザーでのスタイルの適用方法に精通している人とフォーラムに参加していましたが、明らかに「親」セレクターはあらゆる種類の問題とリソースのオーバーヘッドを引き起こし、それだけの価値はありません。

于 2013-09-06T15:54:52.767 に答える
0

cssではできません。「親」セレクターはありません。「祖先」セレクターはありません。主題指標はありませんし:has今後もありません。

JavaScript を使用すると、これを行うのは難しくありません。

Array.prototype.forEach.call(document.querySelectorAll(".cell"), function (el) {
    if (el.querySelector("span")) {
        //found!
    }
});

http://jsfiddle.net/epwUS/

于 2013-09-06T16:00:12.633 に答える