目录
前言
基本选择器
1.1 标签选择器
1.2 ID选择器
1.3 类选择器
高级选择器
2.1 并集选择器
2.2 交集选择器
2.3 后代选择器
2.4 子元素选择器
2.5 属性选择器
前言
1W:什么是CSS选择器?
- CSS选择器由HTML元素的id、class属性或元素名本身以及一些特殊符号构成;
2W:为什么使用CSS选择器?
- 用于指定要为哪个HTML元素定义样式;
3W:如何使用CSS选择器?
- 行内样式:在标签内添加style书写,将样式放在HTML标签中,实现繁琐,推荐学习使用
- 内部样式:将CSS写在</head>和<body>之间,使用HTML标签<style>将其包围,特点是该样式只能在此页使用,解决行内样式多次书写的弊端;
- 外部样式:通过HTML的<link>标签,将外部样式表链接到HTML文档中,也是网络上网站应用最多的方式,同时也是最使用的方式。将HTML文档和CSS文件完全分离,增强网页结构的扩展性和CSS样式的可维护性;
基本选择器
1.1 标签选择器
通过具体的标签名称来匹配文档内所有同名的标签,如下所示:
P{ color:blue; }
复制
p 选择器能够匹配文档中所有的<p>标签
1.2 ID选择器
用来匹配HTML文档中具有指定ID属性的标签,ID选择器的定义需要用到 # ,后面紧跟ID属性的值,如下所示:
注:id属性不能重复,如果某个元素使用id,则这个id是这个元素的唯一标识;
#nav{ color:aqua; }
复制
#nav 选择器能够匹配文档中具有 id="nav" 属性的标签;
1.3 类选择器
根据标签的class 属性匹配具体的HTML标签,所有符合条件的标签都会根据选择器内的样式进行格式化;
类选择器的定义需要用到一个英文的句号 . ,后面紧跟 class 属性的值,如下所示:
.list{ color:darksalmon; }
复制
.list 选择器能够匹配文档中所有具有 class="list"属性的标签
类选择器相较于ID选择器不同的是:类选择器可以重复使用,class属性不是唯一的,可应用于不同的标签,如下所示:
p.list{ color:darksalmon; }
复制
p.list 选择器仅会将其中的样式应用到所有具有 class="list" 属性的<p>标签中,对于其他的具有 class="list"属性的标签则没有影响。
一个HTML标签中的class属性可以不止一个,如:
<p class="info selected"></p> <p class="info"></P>
复制
我们可以将所有class属性包含info的元素设置粗体,为所有class 属性包含selected的元素设置红色字体,为class属性中既包含info又包含selected的元素设置蓝色背景,如下所示:
.info{ font-weight: bold; } .selected{ color: red; } .info.selected{ background: blue; }
复制
这种由多个 class 属性值 所组成的类选择器我们可以称之为“ 多类选择器 ”,由单个class属性值 定义的类选择器可以称为“ 单类选择器 ”;
注:多类选择器中,多个class属性之间是紧挨着的,如info.selected,不需要使用空格分开
高级选择器
2.1 并集选择器
并集选择器是由多个选择器通过逗号 , 连接而成,如下所示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> /* 并集选择器 */ p,.yangshi{ color: red; } </style> <body> <p>爱你孤身走暗巷</p> <p>爱你不跪的模样</p> <div>爱你对峙过绝望</div> <div class="yangshi">不肯哭一场</div> </body> </html>
复制

2.2 交集选择器
交集选择器是由两个选择器连接构成,选中二者范围的交集,如下所示:
注:两个选择器之间不能有空格,第⼀个必须是标签选择器 ,第⼆个必须是 类选择器或 id 选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>交集选择器</title> </head> <style> /* 交集选择器 */ div.one{ color: red; } div#two{ color: darkorchid; } </style> <body> <h1>孤勇者</h1> <small>陈奕迅</small> <div class="one">爱你孤身走暗巷</div> <div id="two">爱你不跪的模样</div> <div>爱你对峙过绝望</div> <p class="one">不肯哭一场</p> </body> </html>
复制

2.3 后代选择器
当⼀个标签嵌套在⼀个标签内部的时候,就可以将这个标签看作是标签的后代。当我们需要选择⼀个标签的任何⼀个后代标签时,就可以使⽤后代选择器。
后代选择器的定义方式就是将 标签名 、 class 属性 或 id 属性等按照标签的嵌套关系由外到内罗列,中间使用 空格 分开。
如下所示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>后代选择器</title> </head> <style> a{ text-decoration: none; } /* 后代选择器 */ ul a{ color: gray; line-height: 30px; } </style> <body> <div> <h2><a href="#">孤勇者</a></h2> <ul> <li> <a href="#">爱你孤身走暗巷</a> </li> <li> <a href="#">爱你不跪的模样</a> </li> <li> <a href="#">爱你对峙过绝望</a> </li> <li> <a href="#">不肯哭一场</a> </li> </ul> </div> </body> </html>
复制

ul a 选择器只会匹配⽆序列表<ul>标签的所有后代标签<a>,和<h2>标签中的<a>标签无关
2.4 子元素选择器
子元素选择器与后代选择器类似,不过子元素选择器只会匹配某个元素的直接后代(元素与其⼦元 素之间只有⼀层嵌套关系),子元素选择器由两个或多个选择器组成,选择器之间用大于号 > 分隔开。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> div{ text-align: center; } /* ⼦元素选择器 */ div>p>em{ font-size: 22px; } div>p>.uname{ color: red; font-weight: 600; } </style> <body> <div> <h2>李小龙语录</h2> <p> 清空你的思想,像水一样无形。你将水倒入水杯,水就是水杯的形状。 <em>你将水倒入茶壶,水就是茶壶的形状。</em>你看,水会流动,也会冲击。请像水一样吧,我的朋友! <em class="uname">武术宗师李小龙</em> </p> </div> </body> </html>
复制

2.5 属性选择器
属性选择器 是指选取带有属性的元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> /* 属性选择器 */ input{ background-color: pink; } input[type]{ background-color: aqua; } input[name]{ background-color: yellow; } input[name="userpwd"]{ background-color: greenyellow; } </style> <body> <input ><br> <input type="text"><br> <input type="text" name="username"><br> <input type="text" name="userpwd"> </body> </html>
复制
