这个问题在这里已有答案:
今天我正在查看我发现的一些示例代码,并注意到开发人员使用“+”而不是“,”来选择两个类。
.region + .region{
border-left: 1px solid lightgray;
padding-left: 3.5%;
margin-left: 4%;
}
“+”符号表示“,”不是什么?你为什么要用它?奇怪的是,同一个班级在这里被选中了两次。为什么?
这是代码笔的链接... http://codepen.io/adobe/pen/vKixh
我只是学习CSS3,任何帮助将不胜感激。谢谢
<div>
<div class="c"></div>
<div class="x"></div>
<div class="y"></div>
</div>
使用.c + div {}
将风格"x"
CSS只工作向下!
<div>
<div class="c"></div>
<div class="x"></div>
</div>
使用.c, .x {}
将以同样的方式设计"c"
和"x"
。
<div>
<div class="c x"></div>
<div class="c"></div>
<div class="x"></div>
</div>
使用.c.x {}
将风格"c x"
他们是不一样的!
+
是邻接选择器,例如选择.region
元素之后的.region
元素。
逗号分隔列表只允许您将一个样式块应用于多个类,因此:
.region, .region{}
实际上不会执行任何只有.region{}
本身不会行动的行动。
邻接选择器(MDN article)
(+)这被称为相邻选择器。它将仅选择紧跟在前一个指定元素之后的指定元素。
考虑到这一点,.region + .region{}
只会将样式应用于另一个之后的.region
,而不是孤立的或第一个。
这不是,
(逗号)的另一种表示法:+
具有完全不同的含义,因为它是直接兄弟选择器(或相邻选择器),所以只有当它与另一个先前的.region
元素相邻时,你的规则才匹配.region
元素。
如果你有几个兄弟.region
元素,像这样
<div class="region">...</div>
<div class="region">...</div>
<div class="region">...</div>
<div class="region">...</div>
.region + .region
将匹配除第一个之外的每个.region
元素。
由于这是一个CSS2
选择器,一个等效的CSS3
选择器将是.region:nth-child(n+1)