咱们今天要学的是CSS
的选择器。CSS
的选择器其实有很多种,不过平常开发最主要用到的,就是下面这几种了。我们这节课程会讲到前三个比较基础的选择器,下一节讲另外两个稍微复杂一点点的选择器。那这些选择器,到底是什么东东,且听我一一道来。
- 标签选择器
- id 选择器
- class 选择器
- 后代选择器
- 子类选择器
先打开WebStorm
,新建一个index.html
文件,打一个!
号,然后按tab
键。这样HTML
的基础格式就出来了。接下来我们在body
标签里面,放一个p标签
和一个h标签
。
<html>
<head>
<meta charset="utf-8">
<!-- ... -->
</head>
<body>
<h1>CSS入门课程</h1>
<p>在ITFun学CSS,好开心啊!</p>
</body>
</html>
浏览器默认显示的文字,都是黑色的,这样实在是有点单调了。如果我们现在想要改变P元素
的颜色,那就需要用到CSS
选择器了。
所谓的
选择器
,其实就是把你想改变样式的元素,给找出来。
因为我们想改变的是P元素
的颜色,所以你需要在HTML
的head标签
中加上这样的代码。
<head>
<meta charset="utf-8">
<!-- ... -->
<style>
p {
color: red;
}
</style>
</head>
刷新一下,果然p标签
包含的内容,就变成了红色了。大家在回头看看我们写的这段代码是什么意思。
首先要在head
标签中,添加上一对style
标签。style
的中文意思就是样式
。所有的CSS
代码,都要写在这一对style
标签之中。
里面的p
就是CSS
的选择器了。所谓的选择器,说白了,就是你想改变谁,就需要先把这个元素给找出来。我们写了一个p
,那么p标签
包括起来的内容,就会发生变化。我们把它的颜色变成了红色。如果你想让h标签
也变颜色,那我们可以继续加上这样的代码。
<head>
<meta charset="utf-8">
<!-- ... -->
<style>
p {
color: red;
}
h1 {
color: yellow;
}
</style>
</head>
但是这样做会有一个缺点,就是网页中所有被你指定的标签都会生效,当你选择h1
后,网页中所有的h1
都会变成黄色,你若不信,那么我们在页面中,再添加另一个h标签
试试。
<body>
<!-- ... -->
<h1>耶耶耶,我学会了~</h1>
</body>
刷新一下,果然这个h1标签
中的内容也变成黄色。那么有没有单独就指定网页中某一个元素的方法呢?当然有的~
id选择器
,就是给网页上的元素,加上一个id
,这个id
就相当于这个网页元素的名字。通过你自定义的这个名字,你就能单独给某一个网页元素添加样式了。
举个栗子,咱们先将刚才写的代码都删掉。添加下面的标签
。
<body>
<h1>貂蝉</h1>
<h1>昭君</h1>
<h1>小猪猪</h1>
</body>
这里有三个名字了,貂蝉
和昭君
都是有名的大美女。至于小猪猪
美不美,大家就仁者见仁智者见智了。现在需求是这样的,如果我只想把昭君
同学的名字变成红色,但是其他人的不变色,应该怎么办呢?
这个时候,如果你还通过h1选择器
,那么所有的h1
都会变色,这肯定就不对了。为了达到需求,就可以通过指定id
的方式,来指明只需要改变昭君
的颜色。
我们给中间的昭君
,加一个id
,它的值是beauty
。
<body>
<!-- ... -->
<h1 id="beauty">昭君</h1>
</body>
接着去style
中,加上这样的CSS
。
<style>
#beauty {
color: red;
}
</style>
刷新看看,果然只有昭君
改变颜色了,其他的h标签
,都还是默认的黑色。好,大家注意看了,这里有一个非常奇怪的#
号。
这其实是CSS
中规定好的,id选择器
的写法。也就说,如果你要通过id
来找一个元素,就必须在选择器
前面加上#
号。而且#
号和id
的名字中间,不能有空格!id选择器
,也就是这么用的了,是不是很简单。
大家思考一下,有一个小问题。如果我想让昭君
、貂蝉
两位大美女,她们两个变成红色,而小猪猪
保持默认的颜色,又应该怎么实现呢?
那你可能第一时间就想到,是不是可以给貂蝉
也加一个叫做red
的id
呢?
<html>
<head>
<meta charset="utf-8">
<!-- ... -->
<style>
#beauty {
color: red;
}
</style>
</head>
<body>
<h1 id="beauty">貂蝉</h1>
<h1 id="beauty">昭君</h1>
<h1>小肥猪</h1>
</body>
</html>
刷新浏览器,确实貂蝉
和昭君
确实变成红色了。但这样做实际上是错误的,你看编辑器里面都直接报错了呢。就算浏览器可以正常显示,但也一定不要这样用。原因是
每个页面中,不能存在同名的
id
!
也就说,你让一个元素的id
是beauty
了。这个页面中,就不能再让别的元素id
也叫beauty
。现在可能还感觉不到有什么问题,等后面学到JavaScript
。如果碰到同名的id
,会直接导致程序运行错误的。为了解决这个问题,这就需要用到class选择器
了。
class选择器
的用法也非常的简单。
<html>
<head>
<meta charset="utf-8">
<!-- ... -->
<style>
.beauty {
color: red;
}
</style>
</head>
<body>
<h1 class="beauty">貂蝉</h1>
<h1 class="beauty">昭君</h1>
<h1>小猪猪</h1>
</body>
</html>
将HTML
中的id
全部改成class
,再将CSS
中的#
号改为.
号。刷新一下,这样就好了,编辑器中也不会报错了。
class
你可以这么理解,class
本身有班级
、类
的意思,当大家有相同的class
,就表示大家是同一类
的,都是大美女。当设置好样式后,属于这一类的元素,就会全部改变了。
CSS
代码,需要写在head
中的style
标签里面。CSS
代码,由选择器
、属性
、值
构成。
选择器类型 | 用法举例 | 说明 |
---|---|---|
标签选择器 | p | 相同标签全部被选中 |
id 选择器 | #pig | 不能重复 |
class 选择器 | .beauty | 可以重复 |
已添加到喜欢了