web-dev-qa-db-ja.com

CSS親/祖先セレクター

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

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

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

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

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

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

10
ChssPly76

CSSには、空の要素を照合できる:emptyセレクターがあり、:notセレクターを使用して効果を無効にすることができます。

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

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

8
RaYell
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 */ }

頑張ってマイク

2
MikeD

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

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

1
teebo