选择器
基本选择器
选择器 | 示例 | 描述 |
---|
.class | .intro | 选择 class="intro" 的所有元素 |
#id | #firstname | 选择 id="firstname" 的所有元素 |
* | * | 选择所有元素 |
element | p | 选择所有p元素 |
element, element | div, p | 选择所有div元素和所有p元素 |
element + element | div + p | 选择紧接在div元素之后的所有p元素 |
结构选择器
选择器 | 示例 | 描述 |
---|
element element | div p | 选择div内部的所有p |
element > element | div > p | 选择父元素为div的所有p |
element + element | div + p | 选择紧接在div之后的p |
element ~ element2 | p ~ ul | 选择p同级并在p后面的所有ul |
属性选择器
选择器 | 示例 | 描述 |
---|
[attribute] | [target] | 带有 target 属性所有元素 |
[attribute=value] | [target=_blank] | targe 属性 等于"_blank" 的所有元素 |
[attribute~=value] | [title~=mkimq] | title 属性包含单词 "mkimq" 的所有元素 |
[attribute|=value] | [title|=hd] | title 属性值为 "hd"的单词,或hd-cms 以-连接的的独立单词 |
[attribute*=value] | a[src*="mkimq"] | src 属性中包含 "mkimq" 字符的每个 元素 |
[attribute^=value] | a[src^="https"] | src 属性值以 "https" 开头的每个 元素 |
[attribute$=value] | a[src$=".jpeg"] | src 属性以 ".jpeg" 结尾的所有 元素 |
伪类选择器
状态 | 示例 | 说明 |
---|
:link | a:link | 选择所有未被访问的链接 |
:visited | a:visited | 选择所有已被访问的链接 |
:hover | a:hover | 鼠标移动到元素上时 |
:active | a:active | 点击正在发生时 |
:focus | input:focus | 选择获得焦点的 input 元素 |
:root | :root | 选择文档的根元素即html。 |
:empty | p:empty | 选择没有子元素的每个p(包括文本节点) |
:first-child | p:first-child | 选择属于父元素的第一个子元素的每个元素 |
:last-child | p:last-child | 选择属于其父元素最后一个子元素每个元素 |
:first-of-type | p:first-of-type | 选择属于其父元素的首个元素的每个元素 |
:last-of-type | p:last-of-type | 选择属于其父元素的最后元素的每个元素 |
:only-of-type | p:only-of-type | 选择属于其父元素唯一的元素的每个元素 |
:only-child | p:only-child | 选择属于其父元素的唯一子元素的每个元素 |
:nth-child(n) | p:nth-child(2) | 选择属于其父元素的第二个子元素的每个元素 |
:nth-child(odd) | p:nth-child(odd) | 选择属于其父元素的奇数元素 |
:nth-child(even) | p:nth-child(even) | 选择属于其父元素的偶数元素 |
:nth-of-type(n) | p:nth-of-type(2) | 选择属于其父元素第二个元素的每个元素 |
:nth-last-child(n) | p:nth-last-child(2) | 同上,从最后一个子元素开始计数 |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 同上,但是从最后一个子元素开始计数。 |
:not(selector) | :not(p) | 选择非元素的每个元素 |
表单伪类
选择器 | 示例 | 说明 |
---|
:enabled | input:enabled | 选择每个启用的 input 元素 |
:disabled | input:disabled | 选择每个禁用的 input 元素 |
:checked | input:checked | 选择每个被选中的 input 元素 |
:required | input:required | 包含required属性的元素 |
:optional | input:optional | 不包含required属性的元素 |
:valid | input:valid | 验证通过的表单元素 |
:invalid | input:invalid | 验证不通过的表单 |
字符伪类
状态 | 示例 | 说明 |
---|
::first-letter | p:first-letter | 选择每个元素的首字母 |
::first-line | p:first-line | 选择每个元素的首行 |
::before | p:before | 在每个元素的内容之前插入内容 |
::after | p:after | 在每个元素的内容之后插入内容 |
元素权重
元素会被多个样式一层层作用,这就是层叠样式表的来源。如果多个样式做用在元素上就会产生优先级权重问题。
使用类、ID、伪类都有不同的权重,具体应用哪条规则要看权限大小。
相同权重的规则应用最后出现的 可以使用 !important 强制提升某个规则的权限
规则 | 粒度 |
---|
ID | 0100 |
class,类属性值 | 0010 |
标签,伪元素 | 0001 |
* | 0000 |
行内样式 | 1000 |