选择器参考
定义
在CSS中,选择器是一种用于选择需要添加样式的元素的条件指定。
概述
CSS的选择器大致可分为以下几大类:
- 类选择器(Class selectors)
通过设置元素的 class 属性,可以为元素指定类名。 - ID选择器(ID selectors)
通过设置元素的 id 属性为该元素制定ID。 - 属性选择器(Attribute selectors)
通过设置元素的属性值,可以为元素指定属性。 - 标签选择器(TAG selectors)
为元素指定标签名。 - 伪类选择器(Pseudo-classes selectors)
伪类是加在选择器后面的用来指定元素状态的关键字,如:visited指示已被访问。 - 基于关系的选择器
列表
元素 | 例子 | 描述 | 版本 |
---|---|---|---|
.class | .widget | 选择 class=“widget” 的所有元素。 | 1 |
#id | #main | 选择 id=“main” 的元素。 | 1 |
* | * | 选择所有元素 | 2 |
tag | td | 选择所有<td>元素 | 1 |
tag1,tag1 | td,th | 选择所有<td>元素和<th>元素 | 1 |
tag1 tag2 | div td | 选择所有<div>元素下的所有<td>元素 | 1 |
tag1>tag2 | div table | 选择父元素为<div>元素的所有<table>元素 | 2 |
tag1+tag2 | div table | 选择紧接着<div>元素之后的所有<table>元素 | 2 |
[attr] | [name] | 选择带有属性name的所有元素 | 2 |
[attr=value] | [name=ok] | 选择带有属性name且其值为“ok”的所有元素 | 2 |
[attr~=value] | [name~=ok] | 选择带有属性name且其值包含“ok”的所有元素 | 2 |
[attr|=value] | [name|=ok] | 选择带有属性name且其值以“ok”开头的所有元素 | 2 |
:link | a:link | 选择所有未被访问的链接 | 1 |
:visited | a:visited | 选择所有已被访问的链接 | 1 |
:active | a:active | 选择活动链接 | 1 |
:hover | a:hover | 选择鼠标指针位于其上的链接 | 1 |
:focus | input:focus | 选择获得焦点的 input 元素 | 2 |
:first-letter | p:first-letter | 选择每个<p>元素的第一个字母 | 1 |
:first-line | p:first-line | 选择每个<p>元素的第一行 | 1 |
:first-child | div.widget:first-child | 选择包含类名widget的每一个<div>元素的第一个子元素 | 2 |
:before | div.widget:before | 在包含类名widget的每一个<div>元素前面追加内容 | 2 |
:after | div.widget:after | 在包含类名widget的每一个<div>元素后面追加内容 | 2 |
:lang(language) | p:lang(zh) | 选择带有以 “zh” 开头的 lang 属性值的每个<p>元素。 | 2 |
element1~element2 | p~ul | 选择前面有 <p> 元素的每个 <ul> 元素。 | 3 |
[attribute^=value] | a[src^="https"] | 选择其 src 属性值以 “https” 开头的每个 <a> 元素。 | 3 |
[attribute$=value] | a[src$=".pdf"] | 选择其 src 属性以 “.pdf” 结尾的所有 <a> 元素。 | 3 |
[attribute*=value] | a[src*="abc"] | 选择其 src 属性中包含 “abc” 子串的每个 <a> 元素。 | 3 |
:first-of-type | p:first-of-type | 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。 | 3 |
:last-of-type | p:last-of-type | 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。 | 3 |
:only-of-type | p:only-of-type | 选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。 | 3 |
:only-child | p:only-child | 选择属于其父元素的唯一子元素的每个 <p> 元素。 | 3 |
:nth-child(n) | p:nth-child(2) | 选择属于其父元素的第二个子元素的每个 <p> 元素。 | 3 |
:nth-last-child(n) | p:nth-last-child(2) | 同上,从最后一个子元素开始计数。 | 3 |
:nth-of-type(n) | p:nth-of-type(2) | 选择属于其父元素第二个 <p> 元素的每个 <p> 元素。 | 3 |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 同上,但是从最后一个子元素开始计数。 | 3 |
:last-child | p:last-child | 选择属于其父元素最后一个子元素每个 <p> 元素。 | 3 |
:root | :root | 选择文档的根元素。 | 3 |
:empty | p:empty | 选择没有子元素的每个 <p> 元素(包括文本节点)。 | 3 |
:target | #news:target | 选择当前活动的 #news 元素。 | 3 |
:enabled | input:enabled | 选择每个启用的 <input> 元素。 | 3 |
:disabled | input:disabled | 选择每个禁用的 <input> 元素 | 3 |
:checked | input:checked | 选择每个被选中的 <input> 元素。 | 3 |
:not(selector) | :not(p) | 选择非 <p> 元素的每个元素。 | 3 |
:selection | :selection | 选择被用户选取的元素部分。 | 3 |
变更点
CSS3新增加了许多选择器。