973

複数のdivタグを含むタグがありulます。

ul最初のタグのみの CSS プロパティを設定できます。

div ul:first-child {
    background-color: #900;
}

ただし、最初のタグを除く他の各タグの CSS プロパティを設定する次の試みulは機能しません。

div ul:not:first-child {
    background-color: #900;
}

div ul:not(:first-child) {
    background-color: #900;
}

div ul:first-child:after {
    background-color: #900;
}

CSSで「最初の要素を除く各要素」と書くにはどうすればよいですか?

4

11 に答える 11

1712

投稿したバージョンの1つは、実際にはすべての最新のブラウザー(CSSセレクターレベル3サポートされている)で機能します。

div ul:not(:first-child) {
    background-color: #900;
}

従来のブラウザーをサポートする必要がある場合、または:notセレクターの制限(引数として単純なセレクターのみを受け入れる)によって妨げられている場合は、別の手法を使用できます。

意図したものよりも広い範囲のルールを定義し、条件付きで「取り消す」ことで、その範囲を意図したものに制限します。

div ul {
    background-color: #900;  /* applies to every ul */
}

div ul:first-child {
    background-color: transparent; /* limits the scope of the previous rule */
}

スコープを制限する場合は、設定する各CSS属性のデフォルト値を使用してください。

于 2012-09-05T21:11:23.177 に答える
168

この CSS2 ソリューション (「any ulafter another ul」) も機能し、より多くのブラウザーでサポートされています。

div ul + ul {
  background-color: #900;
}

:notおよび とは異なり:nth-sibling隣接兄弟セレクターは IE7+ でサポートされています。

ページの読み込み後にJavaScriptでこれらのプロパティを変更する場合は、これのIE7およびIE8実装の既知のバグを調べる必要があります。 このリンクを参照してください

静的 Web ページの場合、これは完全に機能するはずです。

于 2013-03-19T21:33:05.643 に答える
87

はIE6-8:notで受け入れられないため、次のことをお勧めします。

div ul:nth-child(n+2) {
    background-color: #900;
}

したがって、最初の要素を除いてul、その親要素ですべてを選択します。

その他の例については、Chris Coyer の記事「Useful :nth-child Recipes」を参照してください。nth-child

于 2013-02-22T21:07:48.580 に答える
22
div li~li {
    color: red;
}

IE7をサポート

于 2014-10-16T11:10:18.553 に答える
4

私は上記のいくつかで運がなかった、

これは実際に私のために働いた唯一のものでした

ul:not(:first-of-type) {}

これは、ページに表示される最初のボタンが margin-left オプションの影響を受けないようにしようとしていたときにうまくいきました。

これは私が最初に試したオプションでしたが、うまくいきませんでした

ul:not(:first-child)

于 2018-08-08T13:13:25.940 に答える