例えば:
p + p {
/* Some declarations */
}
+
の意味がわかりません。これと+ p
なしでp
のスタイルを定義することの違いは何ですか?
このセレクタは、スタイルが別の段落の直後の段落にのみ適用されることを意味します。
普通のp
セレクタはページ内の各段落にスタイルを適用します。
W3.orgの 隣接するセレクタ を参照してください。
これはIE7以上でのみ動作します。 IE6では、スタイルはどの要素にも適用されません。ちなみにこれは>
コンビネータにも当てはまります。
それは隣接兄弟セレクターです。
From Splash of Styleブログ。
CSS隣接セレクタを定義するには、プラス記号を使用します。
h1+p {color:blue;}
上記のCSSコードは、h1見出しの後(内側ではない)の最初の段落を青にフォーマットします。
h1>p
は、h1
要素の直接(第1世代)の子(内部)であるすべてのp
要素を選択します。
h1>p
は<h1>
<p></p>
</h1>
(<p>
の内側の<h1>
)に一致しますh1+p
は、兄弟である(domの同じレベルにある)最初のp
要素をh1
要素として選択します。
h1+p
は<h1></h1>
<p><p/>
(<p>
の前後の<h1>
)と一致します+
記号は、adjacent sibling
を選択することを意味します。
例:
_ css _
p + p
{
font-weight: bold;
}
_ html _
スタイルは2番目の<p>
から適用されます
<div>
<p></p>
<p></p>
</div>
これを参照してくださいFiddleそしてあなたはそれを永遠に理解するでしょう: http://jsfiddle.net/7c05m7tv/ (もう一つのFiddle: http://jsfiddle.net/7c05m7tv/70/ / )
隣接兄弟セレクタは、Internet Explorer 5.x Macintoshでサポートされています。それらは、Netscape 6プレビューリリース1(それが利用可能なすべての無数のプラットフォーム用)、およびOpera 4 for Windowsのプレビューリリース3でもサポートされています。 Windows用IE5、およびWindows用Opera 3には、隣接兄弟セレクタの処理にバグがあります。
知っておくと良いこと: Internet Explorer 7では、セレクタに一致する要素の前に要素が動的に配置されていると、スタイルが正しく更新されません。 Internet Explorer 8では、リンクをクリックして要素を動的に挿入した場合、リンクがフォーカスを失うまで最初の子スタイルは適用されません。
"+"は隣接する兄弟セレクタです。 pの後に直接pを選択します(ただし、子でも親でも、兄弟ではありません)。
+
セレクタはAdjacent Sibling Selector
と呼ばれます。
たとえば、セレクタp + p
は、p
要素の直後にあるp
要素を選択します。
それはすぐ後に続く要素をチェックするlooking outside
セレクタと考えることができます。
より明確にするためのサンプルスニペットは次のとおりです。
body {
font-family: Tahoma;
font-size: 12px;
}
p + p {
margin-left: 10px;
}
<div>
<p>Header paragraph</p>
<p>This is a paragraph</p>
<p>This is another paragraph</p>
<p>This is yet another paragraph</p>
<hr>
<p>Footer paragraph</p>
</div>
私たちは同じトピックなので、別のセレクター~
selectorについて言及する価値があります。それはGeneral Sibling Selector
です。
たとえばp ~ p
は、p
に続くすべてのp
を選択します。場所は関係ありませんが、両方のp
は同じ親を持つ必要があります。
これは、同じマークアップを使用した場合の外観です。
body {
font-family: Tahoma;
font-size: 12px;
}
p ~ p {
margin-left: 10px;
}
<div>
<p>Header paragraph</p>
<p>This is a paragraph</p>
<p>This is another paragraph</p>
<p>This is yet another paragraph</p>
<hr>
<p>Footer paragraph</p>
</div>
このサンプルでは、最後のp
も一致しています。
要素 'p'のすぐ隣にある要素p
にマッチします。参照してください: http://www.w3.org/TR/CSS2/selector.html
+
は、相対セレクタの1つを表します。すべての相対セレクターのリスト
div p
- <p>
要素内のすべての<div>
要素が選択されています。
div > p
- 直接の親が<p>
であるすべての<div>
要素が選択されています。逆方向にも動作します(p < div
)
div + p
- すべての<p>
要素は、<div>
要素が選択された直後に配置されます。
div ~ p
- 先頭に<p>
要素があるすべての<div>
要素が選択されます。
セレクターについての詳細は ここ をチェックしてください。
Microsoft Wordの場合と同じように、次の段落を選択し、段落の先頭を左からインデントします。
プラス(+)は最初の即値要素を選択します。 +セレクタを使うときは、2つのパラメータを与えなければなりません。これは例でより明確になります。ここでdivとspanはパラメータなので、この場合はdivの後の最初のスパンだけがスタイルされます。
div+ span{
color: green;
padding :100px;
}
<div>The top or first element </div>
<span >this is span immediately after div, this will be selected</span>
<span>This will not be selected</span>
上記のスタイルは、divの後の最初のスパンにのみ適用されます。セカンドスパンは選択されないことに注意することが重要です。
p+p{
//styling the code
}
p+p{
} simply mean find all the adjacent/sibling paragraphs with respect to first paragraph in DOM body.
<div>
<input type="text" placeholder="something">
<p>This is first paragraph</p>
<button>Button </button>
<p> This is second paragraph</p>
<p>This is third paragraph</p>
</div>
Styling part
<style type="text/css">
p+p{
color: red;
font-weight: bolder;
}
</style>
It will style all sibling paragraph with red color.
最終的な出力はこのようになります