What does + mean in CSS? [duplicate]
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
Thisp
comes right after the firsth2
.Not selected
Thisp
occurs after the firstp
as opposed to theh2
. Since it doesn't immediately follow theh2
, it's not selected.However, since it still follows the
h2
element, just not immediately, the selectorh2 + p
won't match this element, buth2 ~ p
will, using the general sibling combinator instead.Not selected
Thisp
is located within ablockquote
, and there's noh2
before 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 -->
精彩评论