最近用的比较多,就总结一下
1.first-child和last-child
<ul>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
</ul>
//匹配到父元素的第一个子元素
.li:first-child{
background-color:pink;
}
//匹配到父元素的最后一个子元素
li:last-child{
background-color:yellow;
}
如果出现下面情况,就会失效
<div>
<p>一</p>
<span>二</span>
</div>
span:first-child{
background-color: pink;
}
此时span并不是其父级元素的第一个子元素,就是说,要用first-child,其子元素必须是父元素第一个子元素,这一点last-child是一样的.
2.first-of-type和last-of-type
<div>
<p>一</p>
<span>二</span>
</div>
//此时用first-of-type是可以的
span:first-of-type{
background-color: pink;
}
first-of-type此时的意思是span是其父元素中第一个span类型的子元素,css是可以生效的.
3.:nth-child(n);nth-of-type(n)
<div>
<p>一</p>
<p>二</p>
<p>三</p>
<span>四</span>
<span>五</span>
<span>六</span>
<a href="">七</a>
<a href="">八</a>
</div>
div :nth-child(1){
color: pink;
}
div :nth-of-type(2){
color:pink;
}
div:nth-child(n): 父级的第n个子元素
div:nth-of-type(n):父级下的不同类型标签的第n个子元素
:nth-last-child(n);:nth-last-of-type和 :nth-child(n) ; :div:nth-of-type(n)用法相似
:nth-last-child(n)为倒数第n个元素
:div:nth-of-type(n)为倒数第n个标签.
4.:first-line和:first-letter.
<body>
<div>
<p>一二三四五六七八九一二三四五六七八九一二三四五六七八九一二三四五六七八九</p>
</div>
</body>
<style>
div{
width: 100px;
height:100px;
}
p:first-line{
color: red;
}
p:first-letter{
color: green;
}
</style>
:first-line是元素的第一行添加样式
:first-letter是元素的第一个字母或汉字添加样式
5.:nth-child(odd)和:nth-child(even).
<div>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<style>
li{
width: 100px;
height: 100px;
border:1px solid black;
list-style: none;
}
//li中奇数项背景色为红色
li:nth-child(odd){
background-color: red;
}
//li偶数项背景色为蓝色
li:nth-child(even){
background-color: blue;
}
</style>