What does the + in this CSS rule mean?
h2 + p {
font-size: 1.4em;
font-weight: bold;
color: #777;
}
+ is the adjacent sibling combinator.
That means the selector h2 + p only selects the p that comes immediately after an h2.
An illustration:
<h2>Headline!</h2>
<p>The first paragraph.</p> <!-- Selected [1] -->
<p>The second paragraph.</p> <!-- Not selected [2] -->
<h2>Another headline!</h2>
<blockquote>
<p>A quotation.</p> <!-- Not selected [3] -->
</blockquote>
What's selected and what's not:
Selected
Thispcomes right after the firsth2.Not selected
Thispoccurs after the firstpas opposed to theh2. Since it doesn't immediately follow theh2, it's not selected.However, since it still follows the
h2element, just not immediately, the selectorh2 + pwon't match this element, buth2 ~ pwill, using the general sibling combinator instead.Not selected
Thispis located within ablockquote, and there's noh2before it inside the quote to satisfy its selector.
It selects all p elements that are directly after a h2 element in the DOM. Thus, the following p element would be styled:
<h2>A heading</h2>
<p>This paragraph will be styled.</p>
But this wouldn't:
<h2>A heading</h2>
<hr>
<p>This paragraph will NOT be styled.</p>
And neither would this:
<p>This paragraph will NOT be styled.</p>
<h2>A heading</h2>
...or this:
<h2>A heading</h2>
<section>
<p>This paragraph will NOT be styled.</p>
</section>
it selects all P tags that are directly beside an h2 tag. Then gives it the said attributes.
Only affects first p which is directly following (comes directly after) the H2
example 1:
<h2></h2>
<p></p> <!-- THIS ONE IS AFFECTED -->
<p></p> <!-- THIS ONE IS NOT AFFECTED -->
<p></p> <!-- NOR THIS ONE -->
<p></p> <!-- NOR THIS ONE -->
<p></p> <!-- ETC -->
example 2:
<h2></h2>
<div></div>
<p></p> <!-- THIS ONE IS NOT AFFECTED -->
加载中,请稍侯......
精彩评论