CSS(层叠样式表)选择器是用来选择HTML文档中的元素,并应用样式规则的模式。
-
****通用选择器(Universal Selector)**:
- 通用选择器(Universal Selector)是CSS中一个非常基础且强大的选择器,它用星号(
*)表示。这个选择器的作用是选择文档中的所有元素,无论它们是什么类型的标签。 *:选择所有元素。- 特点
- 选择所有元素:
*选择器不区分元素类型,它会匹配HTML文档中的每一个元素。 - 继承性:虽然
*选择器可以应用于所有元素,但它不会影响元素的继承行为。CSS的继承规则仍然适用,即子元素会继承父元素的某些属性值。 - 优先级:
*选择器的优先级相对较低,它是一个类型选择器,没有ID、类、伪类或属性选择器的优先级高。如果有更具体的选择器与*选择器冲突,那么更具体的选择器会覆盖*选择器的样式。 - 性能考虑:由于
*选择器匹配所有元素,它可能会导致样式计算变得复杂和缓慢,尤其是在大型文档中。因此,在使用时需要考虑到性能影响。
- 选择所有元素:
- 例子:
* { color:orange; font-size; } - 注意事项
- 性能问题:如前所述,由于
*选择器匹配所有元素,它可能会对页面性能产生负面影响,尤其是在大型文档中。 - 覆盖问题:在使用
*选择器时,需要注意它可能会覆盖其他更具体的选择器的样式,这可能会导致样式冲突。 - 可读性:在CSS代码中过度使用
*选择器可能会降低代码的可读性和可维护性。
- 性能问题:如前所述,由于
- 通用选择器(Universal Selector)是CSS中一个非常基础且强大的选择器,它用星号(
-
类型选择器(Type Selector)/元素选择器:
- 类型选择器(Type Selector)是CSS中用于选择HTML文档中特定类型的所有元素的选择器。它直接使用HTML元素的名称作为选择器,不需要任何额外的符号或标识。这种选择器的目的是将样式规则应用到所有指定类型的HTML标签上。
elementname:选择所有指定类型的元素,例如p会选择所有段落元素。- 特点
- 简单直接:类型选择器的使用非常直接,只需写出HTML元素的名称即可。
- 选择同类型所有元素:它会选中页面上所有该类型的元素,而不考虑它们在文档中的位置。
- CSS优先级:类型选择器的优先级较低,仅高于通用选择器(
*),但低于类选择器(.class)、ID选择器(#id)和属性选择器等。 - 继承性:类型选择器设置的样式会被其子元素继承,除非被更具体的选择器或!important规则覆盖。
- 例子:
h1 { color:orange; font-size; } - 注意事项
- 覆盖问题:类型选择器的样式可以被类选择器、ID选择器等更具体的选择器覆盖。在编写CSS时,需要注意样式的层叠和覆盖关系。
- 性能考虑:虽然类型选择器本身对性能影响不大,但如果页面中存在大量同一类型的元素,并且每个元素都需要应用复杂的样式计算,那么可能会对性能产生一定影响。
- 可维护性:过度使用类型选择器可能会导致样式表难以维护,尤其是在大型项目中。建议结合类选择器和ID选择器使用,以提高样式的可维护性和可读性。
-
类选择器(Class Selector):
- 类选择器(Class Selector)是CSS中用于选择具有特定类(class)属性的HTML元素的选择器。类选择器以点号(
.)开头,后跟类名。使用类选择器,你可以为页面上所有拥有相同类名的元素应用统一的样式。 .class:选择所有拥有指定类名的元素,例如.highlight会选择所有类名为highlight的元素。- 特点
- 可复用性:类选择器允许你为多个元素应用相同的样式,而不需要为每个元素单独定义样式,这提高了样式的复用性。
- 优先级:类选择器的优先级高于类型选择器和伪元素选择器,但低于ID选择器。
- 组合性:类可以被添加到任何类型的HTML元素上,并且可以与元素的类型、伪类和属性选择器结合使用,以创建更具体的选择器。
- 继承性:类选择器设置的样式会被其子元素继承,除非被更具体的选择器或!important规则覆盖。
- 例子:
.类名 { 属性名:属性值; } - 注意事项
- 冲突和覆盖:类选择器的样式可以被ID选择器、内联样式或!important规则覆盖。在编写CSS时,需要注意样式的层叠和覆盖关系。
- 性能考虑:虽然类选择器本身对性能影响不大,但如果页面中有大量使用相同类的元素,并且每个元素都需要应用复杂的样式计算,那么可能会对性能产生一定影响。
- 可维护性:合理使用类选择器可以提高CSS的可维护性,但过度使用或滥用类选择器可能会导致样式表难以维护。
- 类选择器(Class Selector)是CSS中用于选择具有特定类(class)属性的HTML元素的选择器。类选择器以点号(
-
ID选择器(ID Selector):
- ID选择器是CSS中用于选择具有特定ID属性的HTML元素的选择器。ID选择器以井号(
#)开头,后跟ID的名称。每个ID在HTML文档中应该是唯一的,这意味着ID选择器会选择文档中具有指定ID的单个元素。 #id:选择文档中具有指定ID的元素,例如#header会选择ID为header的元素。- 特点
- 唯一性:根据HTML规范,ID在文档中应该是唯一的。因此,ID选择器会选择具有指定ID的单个元素。
- 优先级:ID选择器的优先级较高,高于类型选择器、类选择器和伪类选择器,但低于内联样式和!important规则。
- 继承性:ID选择器设置的样式会被其子元素继承,除非被更具体的选择器或!important规则覆盖。
- 例子:
id值 { 属性名:属性值; } - 注意事项
- 冲突和覆盖:ID选择器的样式可以被!important规则或内联样式覆盖。在编写CSS时,需要注意样式的层叠和覆盖关系。
- 性能考虑:ID选择器本身对性能影响不大,但由于ID应该是唯一的,如果文档中有大量ID选择器,可能会对样式计算产生一定影响。
- 可维护性:合理使用ID选择器可以提高CSS的可维护性,但过度使用或滥用ID选择器可能会导致样式表难以维护。
- ID选择器是CSS中用于选择具有特定ID属性的HTML元素的选择器。ID选择器以井号(
5。属性选择器(Attribute Selector)/复合选择器:
-
属性选择器(Attribute Selector)是CSS中用于根据元素的属性及其值来选择元素的一种选择器。它允许你根据元素的HTML属性来应用样式,而不是仅仅基于元素的类型、类或ID。属性选择器以方括号(
[])表示,方括号内包含属性名称和可选的属性值。-
交集选择器(1)
-
并集选择器(2)
-
后代选择器(3)
-
子元素选择器(4)
-
......
-
特点
- 灵活性:属性选择器提供了一种非常灵活的方式来选择元素,可以根据属性的存在、值、包含的单词等条件来选择。
- 优先级:属性选择器的优先级低于ID选择器和类选择器,但高于类型选择器。
- 继承性:属性选择器设置的样式会被其子元素继承,除非被更具体的选择器或!important规则覆盖。
-
-
例子: (1)
p.beauty { color:blue; }(2)#peiqi, .rich, .beauty { font-sixe:40px; bacground-color:skyblue; width:200px; }(3)/*选中的是ul中的所有li*/ ul li { color:red; }(4)/*div中的子代a元素*/ div>a { color:red; }- 注意事项
- 性能考虑:属性选择器可能会对性能产生一定影响,尤其是在大型文档中,因为浏览器需要检查每个元素的属性。
- 兼容性:虽然现代浏览器都支持属性选择器,但在一些旧的浏览器中可能存在兼容性问题。
- 可维护性:合理使用属性选择器可以提高CSS的可维护性,但过度使用或滥用属性选择器可能会导致样式表难以维护。
- 兼容性:虽然现代浏览器都支持属性选择器,但在一些旧的浏览器中可能存在兼容性问题。
- 可维护性:合理使用属性选择器可以提高CSS的可维护性,但过度使用或滥用属性选择器可能会导致样式表难以维护。
- 注意事项
-
伪类选择器(Pseudo-class Selector):
- 伪类选择器是CSS中用于根据特定条件选择元素的机制,这些条件可以是元素的状态、位置或者行为。伪类选择器以冒号(
:)开头,后面跟着伪类名称。伪类选择器可以与任何选择器结合使用,包括类型选择器、类选择器和ID选择器。 - 伪类选择器是CSS中用于向特定元素添加特殊状态的样式规则的选择器。它们用一个冒号(
:)表示。伪类选择器可以识别元素的不同状态,比如被点击、被悬停或者是否包含子元素等。 :link:选择所有未被访问的链接。:visited:选择所有已被访问的链接。:hover:选择鼠标悬停时的元素。:active:选择被激活的元素。:focus:选择获得焦点的元素。:first-child:选择父元素的第一个子元素。:last-child:选择父元素的最后一个子元素。:nth-child(n):选择父元素的第n个子元素。- ......
- 特点和注意事项
- 状态指示:伪类选择器可以反映用户与页面交互时元素的状态。
- 优先级:伪类选择器的优先级通常低于类选择器和ID选择器,但高于类型选择器。
- 继承*:伪类选择器设置的样式不会被其子元素继承。
- 链式使用:伪类选择器可以与其他选择器一起链式使用,以创建更具体的选择规则。
- 性能考虑:在一些情况下,伪类选择器可能会对性能产生影响,尤其是在大型文档中,因为浏览器需要处理元素的状态变化。
- 兼容性:大多数伪类选择器在现代浏览器中都得到了很好的支持,但在一些旧的浏览器中可能存在兼容性问题。
- 伪类选择器是CSS中用于根据特定条件选择元素的机制,这些条件可以是元素的状态、位置或者行为。伪类选择器以冒号(
-
伪元素选择器(Pseudo-element Selector):
- 伪元素选择器是CSS中用于创建虚拟元素并为其添加样式的一种机制。与伪类选择器不同,伪元素选择器用于创建页面结构中不存在的元素,而不是基于元素的状态或行为。伪元素选择器以两个冒号(
::)开头,后面跟着伪元素名称。 ::before:在元素内容的前面插入内容。::after:在元素内容的后面插入内容。::first-letter:选择元素的第一个字母。::first-line:选择元素的第一行。- ......
- 特点和注意事项
- 创建虚拟内容:伪元素允许你创建页面结构中不存在的元素,这为设计提供了极大的灵活性。
- 不影响DOM:伪元素不会在DOM中实际创建元素,它们只是CSS层面的添加。
- 定位和样式:伪元素可以被定位和样式化,就像普通的HTML元素一样。
- 性能考虑:虽然伪元素不会影响DOM,但复杂的伪元素样式可能会对性能产生一定影响,尤其是在大型文档中。
- 兼容性:大多数现代浏览器都支持伪元素选择器,但在一些旧的浏览器中可能存在兼容性问题。
- 伪元素选择器是CSS中用于创建虚拟元素并为其添加样式的一种机制。与伪类选择器不同,伪元素选择器用于创建页面结构中不存在的元素,而不是基于元素的状态或行为。伪元素选择器以两个冒号(
这些选择器可以单独使用,也可以组合使用,以创建更具体的选择规则。