1.后代选择器(重要)
如果有多级嵌套关系,则需要一层一层的递进选择,并且也可以使用任意的基础选择器。
<div class="nav">
<p><a href="#">哈哈</a></p>
</div>
//示例:选择nav类中的p标签中的a标签
.nav p a {
color: red;
}
//示例:选择ul标签里的li标签
ul li {
color: red;
}
//示例:选择id为app中的table标签
.app table {
...
}
2.子元素选择器(重要)
与后代选择器不同,后代选择器可以选择任意层级的孩子,包括儿子、孙子、重孙子,但是子元素选择器只会选择直接后代,而不会选择所有后代。而且语法也不同。
示例:选择div中的直接子级p标签
<div>
<p>我是儿子1</p>
<p>我是儿子2</p>
<span>
<p>我是孙子</p>
</span>
</div>
div>p {
color: red;
}
3.并集选择器(重要)
并集就是可以同时选择多个类、标签、id,一起设定样式,注意使用逗号(,)隔开,而不是空格。并且并集中可以使用任意形式的选择器,包括后代和子级选择器。
示例:同时选中app类、p和span标签下的a标签
.app,p,span a {
color: red'
}
不过更推荐写成以下格式:
//约定的语法规范,竖着写更容易看清
.app,
p,
span a {
color: red;
}
4.伪类选择器
(1)链接伪类选择器
其实常用的只有 hover 伪类,实际开发中一般单独修改a标签, 然后再加一个 hover 即可。
a {
color: gray;
}
a:hover {
color: red;
}
链接伪类选择器注意事项
- 为了确保伪类生效,请按照LVHU的顺序声明,即 link -> visited -> hover -> active
- 因为a链接在浏览器中具有默认样式,所以实际工作中需要给a链接标签单独指定样式
举例:只给body样式是无法修改a标签样式的,必须直接给a标签样式才行。
<body>
<a href="#">链接</a>
</body>
<style>
body {
color: red;
}
</style>
效果:
必须直接给a标签修改样式才行:
<body>
<a href="#">链接</a>
</body>
<style>
a {
color: red;
}
</style>
(2)表单伪类选择器
即获得光标焦点的input输入框,就是focus伪类选中的对象。