所以基本上我让.round使用第一个类型的选择器丢失其margin-left属性。有趣的是,最后一个类型的选择器工作得很好。 我做错了什么?
<div id="box">
<div id="headline">One big headline</div>
<div class="round">Button 1</div>
<div class="round">Button 2</div>
</div>
#headline {
display: block;
width: 90%;
margin-left: 5%;
margin-right: 5%;
top: 50%;
line-height: 1.2em;
font-size: 3.0em;
font-weight: 800;
text-align: center;
text-transform: uppercase;
color: #333;
}
.round {
display: inline-block;
background: #15D43C;
width: auto;
height: 40px;
border-radius: 20px;
padding-left: 2em;
padding-right: 2em;
text-align: center;
font-size: 0.75em;
font-weight: 700;
text-transform: uppercase;
line-height: 40px;
vertical-align: baseline;
color: #fff;
margin-left: 1em;
margin-top: 1em;
}
.round:first-of-type {
margin-left: 5em;
}
答案 0 :(得分:0)
type
是元素类型,而不是匹配选择器结果的东西。
div
类型的#box
类型的第一个元素不是类.round
的成员,因此.round
和{{1}都不匹配}}
答案 1 :(得分:0)
:first-of-type
不符合你的想法。
.round
的类型为div
。因为第一个.round
不是它的第一个类型(它是父级中的第二个div),所以您的选择器不会选择任何内容。
.round:nth-child(2)
适用于此特定示例
答案 2 :(得分:-1)
JSFiddle在这里使用:nth-child()
。如果可能的话,我会阻止使用它,除非你的意图不同。
<强> JSFiddle Demo 强>
这是一篇很好的文章供您阅读CSS特异性。不使用伪选择器进行定位,而是使用类来修改该特定元素。
PS,您top: 50%
上不需要#heading
,除非定位固定,相对或绝对,否则没有任何意义。