今天我正在查看我发现的一些示例代码,并注意到开发人员使用了" +"而不是","选择两个班级。
.region + .region{
border-left: 1px solid lightgray;
padding-left: 3.5%;
margin-left: 4%;
}
" +"标志做","没有按'吨?你为什么要用它?奇怪的是,同一个班级在这里被选中了两次。为什么?
以下是代码笔的链接... http://codepen.io/adobe/pen/vKixh
我只是学习CSS3,任何帮助将不胜感激。感谢
答案 0 :(得分:6)
他们不一样!
+
是邻接选择器,例如选择.region
元素后面的.region
个元素。
以逗号分隔的列表只允许您将一个样式块应用于多个类,因此:
.region, .region{}
实际上不会执行.region{}
本身不会执行任何操作。
邻接选择器(MDN article)
(+)这被称为相邻选择器。它只会选择 紧跟在前者指定的指定元素 元件。
考虑到这一点,.region + .region{}
只会将样式应用于.region
之后的另一个,而不是孤立的或第一个。
答案 1 :(得分:1)
<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"
答案 2 :(得分:0)
这是不 ,
(逗号)的替代符号:+
具有完全不同的含义,因为它是直接的兄弟选择器(或相邻的选择器) ,因此,只有当.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)
选择器将是{{1}}