CSS选择器非常多,但是在这里我们不会像其他教材那样,恨不得一上来就把所有的CSS选择器都介绍完,最后却搞得大家一头雾水。这个教程是针对CSS入门的,因此我们只会讲解最实用的5种选择器。
- (1)元素选择器
- (2)id选择器
- (3)class选择器
- (4)后代选择器
- (5)群组选择器
从上一节我们知道,CSS选择器的功能就是把所想要的元素选中,然后使得我们可以操作这些元素的CSS样式。其中,CSS选择器的格式如下:
选择器 { 属性1 : 取值1; …… 属性n : 取值n; }
一、元素选择器
元素选择器,就是选中相同的元素,然后对相同的元素定义同一个CSS样式。
语法:
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title></title>
<style type="text/css">
div{color:red;}
</style>
</head>
<body>
<div>绿叶学习网</div>
<p>绿叶学习网</p>
<span>绿叶学习网</span>
<div>绿叶学习网</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
div{color:red;}表示把页面中所有的div元素选中,然后定义它们文本颜色为红色。
元素选择器就是选择指定的相同的元素,而不会选择其他元素。上面例子中的p元素和span元素就没有被选中,因此这两个元素文本颜色就没有变红。
二、id选择器
我们可以为元素设置一个id属性,然后针对设置了这个id的元素定义CSS样式,这就是id选择器。不过要注意一点,在同一个页面中,是不允许出现两个相同的id的。这个跟“没有两个人的身份证号相同”是一样的道理。
语法:
说明:
对于id选择器,id名前面必须要加上前缀“#”,否则该选择器无法生效。id名前面加上“#”,表示这是一个id选择器。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
#lvye{color:red;}
</style>
</head>
<body>
<div>绿叶学习网</div>
<div id="lvye">绿叶学习网</div>
<div>绿叶学习网</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
#lvye{color:red;}表示选中id为lvye的元素,然后定义它们的文本颜色为红色。选择器为我们提供了一种选择方式。如果我们不使用选择器,就没办法把第2个div选中。
三、class选择器
class选择器,也就是“类选择器”。我们可以对“相同的元素”或者“不同的元素”定义相同的class属性,然后针对拥有同一个class的元素进行CSS样式操作。
语法:
说明:
class名前面必须要加上前缀英句号(.),否则该选择器无法生效。类名前面加上英文句号,表明这是一个class选择器。
举例:为相同的元素定义class
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
.lv{color:red;}
</style>
</head>
<body>
<div>绿叶学习网</div>
<div class="lv">绿叶学习网</div>
<div class="lv">绿叶学习网</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
.lv{color:red;}表示选中class为lv的所有元素,然后定义它们文本颜色为红色。
虽然这个页面有3个div,不过我们为后两个div设置同一个class,从而使得可以同时操作它们的CSS样式。此外,第1个div文本颜色不会变红,因为它没有定义class=“lv”,也就是没有被选中。
举例:为不同的元素定义class
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
.lv{color:red;}
</style>
</head>
<body>
<div>绿叶学习网</div>
<p class="lv">绿叶学习网</p>
<span class="lv">绿叶学习网</span>
<div>绿叶学习网</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
p和span是两个不同的元素,但是我们为这两个不同的元素设置相同的class,这样就可以同时为p和span定义相同的CSS样式了。如果你要为两个或多个元素定义相同的样式,建议使用class选择器,因为这样可以减少大量重复代码。
四、后代选择器
后代选择器,就是选择元素内部中所有的某一种元素,包括子元素和其他后代元素(如“孙元素”)。
语法:
说明:
父元素和后代元素必须要用空格隔开,从而表示选中某个元素内部的后代元素。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
#father1 div {color:red;}
#father2 span{color:blue;}
</style>
</head>
<body>
<div id="father1">
<div>绿叶学习网</div>
<div>绿叶学习网</div>
</div>
<div id="father2">
<p>绿叶学习网</p>
<p>绿叶学习网</p>
<span>绿叶学习网</span>
</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
#father1 div {color:red;}表示选择“id为father1的元素”下的所有div元素,然后定义它们的文本颜色为红色。
#father2 span{ color:blue;}表示选择“id为father2的元素”下的所有span元素,然后定义它们文本颜色为蓝色。
五、群组选择器
群组选择器,指的是同时对几个选择器进行相同的操作。
语法:
说明:
对于群组选择器,两个选择器之间必须要用英文逗号(,)隔开,不然群组选择器就无法生效。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
h3, div, p, span {color:red;}
</style>
</head>
<body>
<h3>绿叶学习网</h3>
<div>绿叶学习网</div>
<p>绿叶学习网</p>
<span>绿叶学习网</span>
</body>
</html>
浏览器预览效果如下图所示。
分析:
h3,div,p,span{……}表示选中所有的h3元素、div元素、p元素和span元素。
<style type="text/css">
h3,div,p,span{color:red;}
</style>
上面这段代码等价于以下代码:
<style type="text/css">
h3{color:red;}
div{color:red;}
p{color:red;}
span{color:red;}
</style>
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
#lvye,.lv,span{color:red;}
</style>
</head>
<body>
<div id="lvye">绿叶学习网</div>
<div>绿叶学习网</div>
<p>绿叶学习网</p>
<p class="lv">绿叶学习网</p>
<span>绿叶学习网</span>
</body>
</html>
浏览器预览效果如下图所示。
分析:
#lvye,.lv,span{……}表示选中id为lvye的元素、class为lv的元素以及所有的span元素。
<style type="text/css">
#lvye,.lv,span{color:red;}
</style>
上面这段代码等价于以下代码:
<style type="text/css">
#lvye{color:red;}
.lv{color:red;}
span{color:red;}
</style>
从上面两个例子,我们可以看出群组选择器的效率究竟有多高了吧!这一节介绍的5种选择器使用频率占所有选择器的80%以上,对于初学者来说已经完全够用了。小伙伴们现在先不要急着去学习其他选择器,否则容易混淆。