/*html*/
<div class="wrap">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
/*css*/
.wrap{
display:table;
width: 200px;
}
.wrap span{
display:table-cell;
text-align:center;
}
nth-child(n)
//选择父元素下的第二个子元素,且为span
.wrap span:nth-child(2){
color:red;
}
但是如果子元素是混乱的,比如:
<div class="wrap">
<span>1</span>
<p>p</p>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
nth-child(2)会选择第2个子元素,而且子元素必须是span,但是没找到(第二个子元素为p)
.wrap span:nth-child(3){
color:red;
}
nth-child(3)会选择第3个子元素,而且子元素必须是span
相关
- nth-last-child(n) 从后往前找子元素
nth-of-type(n)
//选择父元素下的第二个span
.wrap span:nth-of-type(2){
color:red;
}
同样的html,nth-of-type(2) 会找到子元素的第2个span,不管有没有其他元素阻碍
相关
- nth-last-of-type(n) 从后往前找子元素
only-child
<div class="wrap">
<span>1</span>
</div>
/*css*/
.wrap span:only-child{
color:red;
}
只有父元素下有一个子元素时,才会生效
当有其他任意标签时,不生效
only-child应用比较少
相关
- last-child 最后一个子元素
only-of-type
对比于only-child,only-of-type允许父元素下有其他类的子元素
// 这时会选中唯一的span元素
<div class="wrap">
<span>1</span>
<i>2</i>
</div>
.wrap span:only-of-type{
color:red;
}
相关
- first-of-type 选中第一个指定子元素
- last-of-type 选中最后一个指定子元素