16

重複の可能性:
CSS 親セレクターはありますか?

私はこれが暗いショットであることを知っていますが、要素の祖先を選択してスタイルを設定するために、cssのみ、CSS2、jquery、javascriptを使用しない方法はありますか? セレクターを確認しましたが、何かを見逃した場合や巧妙な回避策がある場合に備えて、これを投稿しています。

たとえば、クラス名「test」が div 内にネストされたテーブルがあるとします。ある種のものはありますか:

<div>
    <table class="test">
    </table>
</div>
div (with child) .test
{
     /*styling, for div, not .test ...*/
}
4

4 に答える 4

11

CSS2 や CSS3 には親セレクターのようなものはありません。親セレクターを使い始めると、CSS の「カスケード」部分全体を処理するのが難しくなるため、実際には決して存在しない可能性があります。

それがjQueryの目的です:-)

于 2009-08-09T17:17:18.293 に答える
9

CSS には、空の要素を一致させることができる :empty セレクターがあり、:not セレクターで効果を無効にすることができます。

div:not(:empty) {
    // your styles here
}

ただし、すべてのブラウザがこれをサポートしているかどうかはわかりません。

于 2009-08-09T17:18:06.403 に答える
3
div:not(:empty) {
    margin:0;
}

http://jigsaw.w3.org/css-validator/では CSS2 として認識されません

CSS の目的は、より包含的な要素からより具体的な要素へと「カスケード」することです。次のように、「論理を逆にする」ことは可能だと思います

div.myclass   { /* format parent */ }
div.myclass * { /* neutralize formats in descendants */}
div.myclass img { /* more specific formats for img children */ }

頑張れマイク

于 2009-10-07T10:58:37.050 に答える
2

:empty Firefox でサポートされている疑似クラスですが、IE とは互換性がありません。

しかし、IE の非常に簡単な jQuery 回避策はhttp://www.webmasterworld.com/css/3944510.htmにあります。私のベーコンを救った

于 2010-07-01T23:04:40.590 に答える