我真的很难理解如何选择第n类选择的孩子。
我希望选择.formdiv:nth-of-type(1)的标签比使用.formdiv选择的所有其他div中的标签短
这最容易通过以下jsfiddle进行解释:http://jsfiddle.net/LSjLT/1/
我需要包含text1和text2的标签不要比包含更长文本的标签宽。
我觉得特别奇怪的是我编写的选择器在jQuery中工作正常(返回正确的节点),但似乎不能在css中工作:
.formdiv:nth-of-type(1) label{
width: 60px;
}
我的HTML如下:
<form id="settings">
<div class="formdiv">
<label for ="text1">text1:</label>
<input id="text1"></input>
</br>
<label for = "text2">text2:</label>
<input id="text2"></input>
</br>
</br>
</div>
<div class="formdiv">
<label for = "longer text 1">longer text 1:</label>
<input id="longer text 1"></input>
</br>
<label for = "longer text 2">longer text 2:</label>
<input id="longer text 2"></input>
</br>
</br>
</div>
<div class="formdiv">
<label for = "longer text 1">longer text 1:</label>
<input id="longer text 1"></input>
</br>
<label for = "longer text 2">longer text 2:</label>
<input id="longer text 2"></input>
</br>
</br>
</div>
</form>
和我目前的css:
#settings .formdiv label {
font: 12px Arial;
text-align: right;
width: 80px;
display: inline-block;
}
#settings input {
display: inline-block;
}
.formdiv {
display:inline-block;
}
/*This doesn't seem to work!*/
.formdiv:nth-of-type(1) label{
width: 60px;
}
非常感谢您的帮助。
罗宾
答案 0 :(得分:3)
在.formdiv
和:nth-of-type(1)
.formdiv :nth-of-type(1){
color:red;
}
您选择了nth-of-type
的{{1}}。
添加空格会选择.formdiv
的子元素的nth-of-type
。
同样适用于.formdiv
jsFiddle example
再次注意空间。
答案 1 :(得分:2)
选择器#settings .formdiv label{}
覆盖.formdiv:nth-of-type(1) label{}
,因为它有一个ID,因为它针对每个width
<label>
属性
在#settings
上添加.formdiv:nth-of-type(1) label
元素以增加其specifcity:
#settings .formdiv:nth-of-type(1) label{
width: 60px;
}
答案 2 :(得分:0)
使用以下内容:
.formdiv:first-of-type input {css}
答案 3 :(得分:0)
.formdiv:nth-of-type(1) label{
width: 60px !important;
}
在CSS中使用id不是好习惯。在代码中添加它,您可以看到结果。