选择器参考

 

定义

在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
tagtd选择所有<td>元素1
tag1,tag1td,th选择所有<td>元素和<th>元素1
tag1 tag2div td选择所有<div>元素下的所有<td>元素1
tag1>tag2div table选择父元素为<div>元素的所有<table>元素2
tag1+tag2div 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
:linka:link选择所有未被访问的链接1
:visiteda:visited选择所有已被访问的链接1
:activea:active选择活动链接1
:hovera:hover选择鼠标指针位于其上的链接1
:focusinput:focus选择获得焦点的 input 元素2
:first-letterp:first-letter选择每个<p>元素的第一个字母1
:first-linep:first-line选择每个<p>元素的第一行1
:first-childdiv.widget:first-child选择包含类名widget的每一个<div>元素的第一个子元素2
:beforediv.widget:before在包含类名widget的每一个<div>元素前面追加内容2
:afterdiv.widget:after在包含类名widget的每一个<div>元素后面追加内容2
:lang(language)p:lang(zh)选择带有以 “zh” 开头的 lang 属性值的每个<p>元素。2
element1~element2p~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-typep:first-of-type选择属于其父元素的首个 <p> 元素的每个 <p> 元素。3
:last-of-typep:last-of-type选择属于其父元素的最后 <p> 元素的每个 <p> 元素。3
:only-of-typep:only-of-type选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。3
:only-childp: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-childp:last-child选择属于其父元素最后一个子元素每个 <p> 元素。3
:root:root选择文档的根元素。3
:emptyp:empty选择没有子元素的每个 <p> 元素(包括文本节点)。3
:target#news:target选择当前活动的 #news 元素。3
:enabledinput:enabled选择每个启用的 <input> 元素。3
:disabledinput:disabled选择每个禁用的 <input> 元素3
:checkedinput:checked选择每个被选中的 <input> 元素。3
:not(selector):not(p)选择非 <p> 元素的每个元素。3
:selection:selection选择被用户选取的元素部分。3

变更点

CSS3新增加了许多选择器。