这可能是一个基础问题,但对我而言在CSS中何时可以使用+
或>
仍然很困惑。
我看到许多选择器,如li > a
或div + span
等,但我不确定它们的区别以及何时使用它们?
这可能是一个基础问题,但对我而言在CSS中何时可以使用+
或>
仍然很困惑。
我看到许多选择器,如li > a
或div + span
等,但我不确定它们的区别以及何时使用它们?
div > ul {
list-style: none;
}
HTML
这里的样式将应用于<ul>
<div>
<ul>
</ul>
</div>
+符号表示选择相邻的兄弟元素。
例如:
CSS
p + p
{
font-weight: bold;
}
HTML
这里的样式将应用于后者<p>
<div>
<p></p>
<p></p>
</div>
>
选择器是直接子元素选择器。在您的示例 li > a
中,该规则将选择任何作为 <li>
元素的直接子元素的 <a>
元素。<ul>
<li><a href="#">An anchor</a></li>
</ul>
相邻兄弟选择器
+
选择器是相邻兄弟选择器。在您的示例 div + span
中,该规则将选择任何一个 <span>
元素,其立即前面有一个 <div>
元素,并且它们都具有相同的父元素。
在这种情况下,将选择 span 元素:
<article>
<div>A preceding div element</div>
<span>This span would be selected</span>
</article>
div
不需要在span
之前吗?它会匹配这个HTML中的两个span
吗? <span/> <div/> <span/>
。我认为只有第二个span
会匹配。 - powerbuoy>
是直接子元素选择器。在你的例子中,li > a
只会选择作为 <li>
直接子元素的 <a>
标签。
+
表示选中元素的同级兄弟元素。在你的例子中,div + span
会选择与 <div>
(有相同父元素)相邻的任何 <span>
元素。li > a
只会选择直接是 li
元素子元素的 a
元素。 div + span
只会选择跟在 div
元素后面的 span
元素。
更多信息请参考 @bažmegakapa 的链接:http://www.w3.org/TR/CSS2/selector.html#pattern-matching
我不确定加号的含义,但在CSS中>符号表示直接子元素,请考虑这一点。
div > h1 { color: red; }
这将为所有直接位于 div 中的 h1 标签设置样式。
<h1>BLAH</h1>
<div>
<h1>BLAH</h1>
</div>
E > F
:子选择器。匹配任何作为元素 E 的直接子元素的 F 元素。-E + F
:相邻兄弟选择器。匹配任何在兄弟元素 E 之后立即出现的 F 元素。你必须记住的30个CSS选择器。 - kapa