<div id="main">
<p> one </p>
<p> two </p>
<p> three </p>
<p> four </p>
<p> five </p>
<div>
最初の<p>One</p>
にCSSを適用したくない
p {color:red}
:first-child
の正反対が必要です。
Quentinの:not()
ソリューションは、最新のブラウザーに最適です。
p:not(:first-child) { color: red; }
古いブラウザ用の彼の代替もうまく機能しますが、それは最初の子のオーバーライドルールを使用します。 requiredではありませんが、...
兄弟セレクターを使用するだけで、上記のルールと同じルールを適用できます。p:first-child
。これらのルールのいずれかが機能します。
隣接する兄弟セレクター 。これは、p
の直後にあるp
に一致します。
p + p { color: red; }
一般的な兄弟セレクター 。これは、p
の後の任意のp
に一致します。
p ~ p { color: red; }
ここでは両方のコンビネータが同じように機能します。それらの微妙な違いは、ミックスに他の要素がある場合にのみ適用されます。詳細については、提供されているリンクを参照してください。
:nth-child()
がうまくいくと思います。
p:nth-child(n+2){
background-color:red;
}
これは、2番目の子で始まるため、最初のタグを除くすべてのp
タグのスタイルを設定します。次に、最初のp
タグをp:first-child
で個別にスタイルできます。
毎回機能し、元に戻す必要はありません:
p + p {
/* do 15 special things */
}
Pが先行するすべてのPが必要です。後で元に戻すためにプロパティを設定しないでください。あなたがそれを助けることができるならば、あなたはそれを加えるべきで、引くことではありません。
「チルダ」(〜)演算子も使用できます
<!DOCTYPE html>
<html>
<head>
<style>
p ~ p {
background:#ff0000;
}
</style>
</head>
<body>
<h1>This is a heading</h1>
<p>The first paragraph.</p>
<p>The second paragraph.</p>
<p>The third paragraph.</p>
<p>The fourth paragraph.</p>
</body>
</html>
ここにJSFiddleデモがあります http://jsfiddle.net/RpfLa/344/
FF 17でクイックテストを行いましたChrome 23、Safari 5.1、IE9、IE1-8、互換モードで
:nth-child(1n+2)
はうまく機能しました。これは最初の子をスキップし、残りの要素に続きます。
p:nth-child(1n+2){
color: red;
}
お役に立てれば。