css选择器
css选择器是css规则的一部分且位于css声明块前。
选择器分类:
- 简单选择器:通过元素类型、class或id匹配一个或多个元素。
- 属性选择器:通过属性值匹配一个或多个元素。
- 伪类:匹配处于确定状态的一个或多个元素,比如一些dom事件触发。
- 伪元素:匹配处于相关的确定位置的一个或多个元素,例如每个段落的第一个字或者某个元素之前生成的内容。
- 组合器:有效的方式组合两个或更多的选择器用于非常特定的选择的方法。
- 多用选择器:将逗号分隔的多个选择器放在一个css规则下面,声明应用又这些选择器选择的元素。
简单选择器(元素选择器)
指定html元素名,不区分大小写的匹配。这是所有指定类型的最简单方式。
类选择器 class selectors
类选择器是由.以及类名组成。类名是在HTML class文档元素属性中没有空格的任何值,单个元素可以有多个类名。
ID选择器
ID选择器是由#号和id名组成,一个id名称在文件代表的元素是唯一的。
通用选择器 universal selector
(*)代表通用选择器,匹配文件内的所有元素。
通用选择器对大型网页性能消耗大,谨慎使用!
组合器 combinators
在css中,允许多个选择器组合。
| combinators | select |
|---|---|
| A,B | 匹配A或B的任意元素 |
| A B | 匹配任意元素,前提:B是A的后代 |
| A > B | 匹配任意元素,前提:B是A的直接节点 |
| A + B | 匹配任意元素,前提:B是A的下一个兄弟节点 |
| A + B | 匹配任意元素,前提:B是A之后的任意一个兄弟节点 |
属性选择器
- 存在和值属性选择器
[attr]: 包含attr属性的所有元素;[attr = val]: 包含attr属性值为val的所有元素;[attr ~= val]: 包含attr属性其中值包含val的所有元素;
- 子串值属性选择器(伪正则选择器)
[attr |= val]: 包含attr属性的值以val或val-开头的元素;[attr ^= val]: 包含attr属性的值以val-开头的元素;[attr $= val]: 包含attr属性的值以val-结尾的元素;[attr *= val]: 包含attr属性的值包含字符串val的元素;
伪类(pseudo-class)
css伪类,以冒号(:)作为前缀的关键字,在特定状态下才被呈现到指定的元素。
伪类选择器有:
- :active
- :any
- :checked
- :default
- :dir()
- :disable
- :empty
- :enabled
- :first
- :first-child
- :first-of-type
- :fullscreen
- :focus
- :hover
- :indeterminate
- :in-range
- :invalid
- :lang()
- :lasr-child
- :last-of-type
- :left
- :link
- :not()
- :nth-child()
- :nth-last-child()
- :nth-last-of-type()
- :nth-of-type()
- :only-child
- :only-of-type
- :optional
- :out-of-range
- :read-only
- :read-write
- :required
- :right
- :root
- :scope
- :target
- :valid
- :visited
伪元素
伪元素的前缀是两个冒号(::)
- ::after
- ::before
- ::first-letter
- ::first-line
- ::selection
- ::backdrop