后代选择器
相邻后代选择器
兄弟选择器
相邻兄弟选择器
first-child
- 选中
ul
的第一个li
,li:first-child
.sidebar{
list-style: none;
padding:0;
}
.sidebar li{
padding:0.5em;
}
.sidebar a{
text-decoration: none;
color:lightgray;
}
.sidebar a:hover{
color:gray;
}
.sidebar a:active{
color:black;
}
.sidebar li:first-child a{
color:black;
}
<ul class="sidebar">
<li><a href="#1">Hello world</a></li>
<li><a href="#2">Installation</a></li>
</ul>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9b1be86813762c54dda638800a7a4862.gif)
li:first-child
首先,li
的父元素,是ul
然后,父元素ul
的所有子元素中 的第一个 是li
最后,属于第一个子元素的所有li
元素
所以,li:first-child
就是<li><a href="#1">Hello world</a></li>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2241f4bbd2bac97ec293d9f380fa9812.png)
nth-child(n)/nth-of-type(n)
div:nth-child(1){
color:yellow
}
div:nth-of-type(1){
font-size:48px;
}
p:nth-child(2){
color:red;
}
p:nth-of-type(2){
color:blue
}
<body>
<div>hello world</div>
<p>热干面加油</p>
<p>炸酱面加油</p>
</body>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4885c4303cf92914ce7377e14f90bb0f.png)
div:nth-child(1)
首先,div
的父元素,是body
然后,父元素body
的所有子元素索引从1开始 的第1
个,是div
最后,属于第1
个子元素的所有div
所以,div:nth-child(1)
就是<div>hello world</div>
p:nth-child(2)
首先,p
的父元素,是body
然后,父元素body
的所有子元素索引从1开始 的第2
个,是p
最后,属于第2
个子元素的所有p
所以,p:nth-child(2)
就是<p>热干面加油</p>
p:nth-of-type(2)
首先,p
的父元素,是body
然后,父元素的所有为p
的子元素索引从1开始 的第2
个,是p
最后,属于第2
个子元素的所有p
所以, p:nth-of-type(2)
就是<p>炸酱面加油</p>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/25c7b8b6e5cd1032a98567d32a77d221.png)
属性过滤选择器
:disabled{
cursor:not-allowed;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1e87cdd66082b98dc534f9b1991d2214.png)
[disabled]
选中拥有disabled属性的元素
[disabled]{
cursor:not-allowed;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/45a0072c23931e500be70923ea69b8c4.png)
[aria-disabled="true"]
选中拥有aria-disabled
属性,且该属性值为true
的元素
[aria-disabled=false]{
cursor:not-allowed;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0d1f94b1ae70ac6927a79c0f1d74b4be.png)