标签选择器
标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。
作用
标签选择器可以把某一类标签全部选择出来,比如所有的<div>标签和所有的<span>标签。
优点
能快速为页面中同类型的标签统一设置样式。
缺点
不能设计差异化样式,只能选择全部的当前标签。
<style> /* 语法 标签名{ 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; ... } */ div{ height:20px; background-color: blue; } </style> </head> <body> <div></div> </body>
类选择器
如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。
类选择器在 HTML 中以 class 属性表示,在 CSS 中,类选择器以一个点"."号显示。
注意
类选择器使用"."(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)。
可以理解为给这个标签起了一个名字来表示。
长名称或词组可以使用中横线 来为选择器命名。
不要使用纯数字、中文等命名,尽量使用英文字母来表示。
1、单类名
<style> /* 语法 类名{ 属性1:属性值1; ... } */ .an{ height:20px; background-color: skyblue; } </style> </head> <body> <div class="an"></div> </body>
2、多类名
- 在标签 class 属性中写多个类名。
- 多个类名中间必须用空格分开。
- 简单理解:就是给某个标签添加了多个类,或这个标签有多个名字。
<style> /* 语法 类名{ 属性1:属性值1; ... } */ .an{ height:20px; background-color: skyblue; } .as{ font-size: 14px; } </style> </head> <body> <div class="an as">阿牛</div> </body>
id选择器
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
HTML 元素以 id 属性(全局唯一)来设置 id 选择器, CSS 中 id 选择器以“#”来定义。
<style> /* 语法 #id名{ 属性1:属性值1; ... } */ #nav{ height:20px; background-color:red } </style> </head> <body> <div id="nav"></div> </body>
id 选择器和类选择器的区别
类选择器( class )好比人的名字,一个人可以有多个名字,同时一个名字也以被多个人使用。
id 选择器好比人的身份证号码全中国是唯一的,不得重复。
id 选择器和类选择器最大的不同在于使用次数上。
类选择器在修改样式中用的最多, id 选择器一般用于页面唯一性的元素上,经常和 JavaScript 搭配使用。
🍒通配符选择器
在 CSS 中,通配符选择器使用"*”定义,它表示选取页面中所有元素(标签)。
通配符选择器不需要调用,自动就给所有的元素使用样式
特殊情况才使用,例如:清除所有的元素标签的内外边距。
<style> /* 语法 *{ 属性1:属性值1; ... } */ *{ margin: 0; padding: 0; } </style>
复合选择器
在 CSS 中,可以根据选择器的类型把选择器为基础选择器和复合选择器,复合选择器是建立基础选择器之上,对基本选择器进行组合形成的。
复合选择器可以更准确、更高效的选择目标元素(标签)。
复合选择器是由两个或多个基础先择器,通过不同的方式组合而成的。
常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等。
后代选择器
后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
<style> /* 语法 元素1 元素2{ 属性名:属性值; ... } */ /* 上述语法表示选择元素1里面的所有元素2(后代元素)。 */ .nav p{ /* p 是儿子 */ height:20px; width: 200px; } .nav a{ /* a 是孙子 */ color:red; } </style> </head> <body> <div class="nav"> <p><a href="#"></a>松子</p> </div> </body>
子(代)选择器
子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素。
<style> /* 语法: 元素1>元素2{ 属性名:属性值; ... } */ /* 上述语法表示选择元素1里面的所有直接后代(子元素)元素2。 */ .nav>p{ /* p 是儿子 */ height: 20px; width: 200px; background-color: orange; } </style> </head> <body> <div class="nav"> <p><a href="#"></a></p> <p></p> </div> </body>
元素1和元素2中间用大于号隔开。
元素1是父级,元素2是子级,最终选择的是元素2。
元素2必须是亲儿子,其孙子、重孙之类都不归他管,你也可以叫他亲儿子选择器。
🍒并集选择器
并集选择器可以选择多组标签同时为他们定义相同的样式。通常用于集体声明,并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。
<style> /* 语法: 元素1,元素2{ 属性名:属性值; ... } 上述语法表示选择元素1和元素2。 */ .nav, p{ height:20px; width: 200px; } </style> </head> <body> <div id="nav"> </div> <p></p> </body>
链接伪类选择器
a : link /★选择所有未被访问的链接★/ a : visited /★选择所有已被访问的链接★/ a : hover /选择鼠标指针位于其上的链接*川 a : active /★选择活动链接(鼠标按下未弹起的链接)*/
<style> a{ font-size: 20px; text-decoration: none; } a:hover{ color:orange; } </style> </head> <body> <a href="#">百度</a> </body>
focus伪类选择器
:focus 伪类选择器用于选取获得焦点的表单元素。
焦点就是光标,一般情况< input >类表单元素才能获取,因此这个选择器也主要针对于表单元素来说。
<style> input:focus{ background-color: orange; } </style> </head> <body> <input type="text"> </body>
<style> /* 兄弟选择器,这里的两个p标签和div标签是兄弟 */ div~p{ height: 20px; background-color: pink; } </style> </head> <body> <div></div> <p></p> <p></p> </body>
<style> /* 相邻选择器,第一个p标签是div标签相邻兄弟 */ div+p{ height: 20px; background-color: red; } </style> </head> <body> <div></div> <p></p> <p></p> </body>