二、CSS选择器
2.1、CSS选择器作用
我们可以通过选择器,快速找到特定的HTML页面元素,把我们想要的标签选择出来。简答来说,CSS一声就做两件事:
- 选对人
- 做对事。
h3 { color: red; } 复制代码
这段代码就是2件事, 把 h3选出来(选对人), 然后把它变成了红色(做对事),选择器分为基础选择器和复合选择器。
2.2、CSS基础选择器
2.2.1、标签选择器
2.2.1.1、概念
标签选择器(元素选择器)是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。
2.2.1.2、语法
标签名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 复制代码
2.2.1.3、作用
标签选择器 可以把某一类标签全部选择出来 比如所有的div标签 和 所有的 span标签
2.2.1.4、优缺点
- 优点:
是能快速为页面中同类型的标签统一样式
- 缺点:
不能设计差异化样式。
2.2.1.5、总结
标签选择器, 页面同选起。 直接写标签, 全部不放弃。 复制代码
2.2.2、类选择器
2.2.2.1、概念
类选择器使用.
(英文点号)进行标识,后面紧跟类名。
2.2.2.2、语法
.类名 { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 复制代码
<p class='类名'></p> 复制代码
我们还可以给标签指定多个类名,从而达到更多的选择目的。我们可以看到大厂做的产品,一般制定两个以上的类名。
注意:
- 各个类名中间用空格隔开。
- 多类名选择器在后期布局比较复杂的情况下,还是较多使用的。
<div class="pink fontWeight font20">亚瑟</div> <div class="font20">刘备</div> <div class="font14 pink">后羿</div> <div class="font14">貂蝉</div> 复制代码
2.2.2.3、优点
可以为元素对象定义单独或相同的样式。 可以选择一个或者多个标签。
2.2.2.4、注意
- 类选择器使用
.
(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)。 - 长名称或词组可以使用中横线来为选择器命名。
- 要纯数字、中文等命名, 尽量使用英文字母来表示。
2.2.2.5、总结
差异化选择 一个或多个 上面点定义 类名别写错 谁用谁调用 class来做。 复制代码
2.2.2.6、小案例
<head> <meta charset="utf-8"> <style> .blue { color: blue; font-size: 100px; } .red { color: red; font-size: 100px; } .orange { color: orange; font-size: 100px; } .green { color: green; font-size: 100px; } </style> </head> <body> <span class="blue">G</span> <span class="red">o</span> <span class="orange">o</span> <span class="blue">g</span> <span class="green">l</span> <span class="red">e</span> </body> 复制代码
2.2.3、 id选择器
id选择器使用#
进行标识,后面紧跟id名。
2.2.3.1、语法
#id名 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 复制代码
<p id="id名"></p> 复制代码
2.2.3.2、注意
- 元素的id值是唯一的,只能对应于文档中某一个具体的元素。
- 用法基本和类选择器相同。
2.2.3.3、id选择器和类选择器区别
W3C标准规定,在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class,id选择器和类选择器最大的不同在于使用次数上。类选择器我们在修改样式中,用的最多。id选择器一般用于页面唯一性的元素身上,经常和我们后面学习的javascript 搭配使用。
- 类选择器(class) 好比人的名字, 是可以多次重复使用的, 比如 张伟 王伟 李伟 李娜
- id选择器 好比人的身份证号码, 全中国是唯一的, 不得重复。 只能使用一次。
2.2.4、通配符选择器
2.2.4.1、概念
通配符选择器用*
号表示, *
就是选择所有的标签,他是所有选择器中作用范围最广的,能匹配页面中所有的元素,他会匹配页面所有的元素,降低页面响应速度,不建议随便使用。
2.2.4.2、语法
* { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 复制代码
* { margin: 0; /* 定义外边距*/ padding: 0; /* 定义内边距*/ } 复制代码
2.2.5、基础选择器总结
选择器 | 作用 | 缺点 | 使用情况 | 用法 |
标签选择器 | 可以选出所有相同的标签,比如p | 不能差异化选择 | 较多 | p { color:red;} |
类选择器 | 可以选出1个或者多个标签 | 可以根据需求选择 | 非常多 | .nav { color: red; } |
id选择器 | 一次只能选择器1个标签 | 只能使用一次 | 不推荐使用 | #nav {color: red;} |
通配符选择器 | 选择所有的标签 | 选择的太多,有部分不需要 | 不推荐使用 | * {color: red;} |
2.3、CSS复合选择器
2.3.1、后代选择器
2.3.1.1、概述
后代选择器又称为包含选择器,用来选择元素或元素组的子孙后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔,先写父亲爷爷,在写儿子孙子。
父级 子级{属性:属性值;属性:属性值;} 复制代码
.class h3{color:red;font-size:16px;} 复制代码
2.3.1.2、注意
- 当标签发生嵌套时,内层标签就成为外层标签的后代。
- 子孙后代都可以这么选择,或者说,它能选择任何包含在内的标签。
2.3.2、 子元素选择器
子元素选择器只能选择作为某元素**子元素(亲儿子)**的元素,其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 >
进行连接。
.class>h3{color:red;font-size:14px;} 复制代码
2.3.3、交集选择器
交集选择器由两个选择器构成,找到的标签必须满足:既有标签一的特点,也有标签二的特点,用的相对来说比较少,不太建议使用。
他的语法格式如下,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格:
标记选择器.类别选择器{color:red;font-size:25px;} # 举例 h3.class:的意思是说类名为class的所有h3的标签 复制代码
2.3.4、并集选择器
如果某些选择器定义的相同样式,就可以利用并集选择器,可以让代码更简洁。并集选择器(CSS选择器分组)是各个选择器通过,
连接而成的,通常用于集体声明。任何形式的选择器(包括标签选择器、class类选择器id选择器等),都可以作为并集选择器的一部分。
并集选择器通常用于集体声明,逗号隔开的,所有选择器都会执行后面样式,逗号可以理解为和的意思。
.选择器1,选择器2...{color:red;font-size:25px;} # 举例 .one,p,#test {color: #F00;} # 说明 .one 和 p 和 #test 这三个选择器都会执行颜色为红色。 通常用于集体声明。 复制代码
2.3.5、复合选择器总结
后代选择器 | 用来选择元素后代 | 是选择所有的子孙后代 | 较多 | 符号是空格 .nav a |
子代选择器 | 选择 最近一级元素 | 只选亲儿子 | 较少 | 符号是**>** .nav>p |
交集选择器 | 选择两个标签交集的部分 | 既是 又是 | 较少 | 没有符号 p.one |
选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |
并集选择器 | 选择某些相同样式的选择器 | 可以用于集体声明 | 较多 | 符号是逗号 .nav, .header |