总结了下CSS3新增的一些选择器。
CSS3的选择器有基本选择器、属性选择器、伪类选择器几类。
选择器 | 举例 | 例子描述 |
element1~element2 | p~a | 选择前面有 <p> 元素的每个 <a> 元素。 |
[attrtube^=value] | a[src^="http"] | 选择其 src 属性值以 "https" 开头的每个 <a> 元素。 |
[attrtube$=value] | a[src$=".pdf"] | 选择其 src 属性值以 ".pdf" 结尾的每个 <a> 元素。 |
[attrtube*=value] | a[src*="abc"] | 选择其 src 属性值包含 "abc" 的每个 <a> 元素。 |
:first-of-type | p:first-of-type | 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。 |
:last-of-type | p:last-of-type | 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。 |
:only-of-type | p:only-of-type | 选择属于其父元素的唯一 <p> 元素的每个 <p> 元素。 |
:only-child | p:only-child | 选择属于其父元素的唯一子元素的每个 <p> 元素。 |
:nth-child(n) | p:nth-child(2) | 选择属于其父元素的第二个子元素的每个 <p> 元素。 |
:nth-last-child(n) | p:nth-last-child(2) | 同上,从最后一个元素开始计算 |
:nth-of-type(n) | p:nth-of-type(2) | 选择属于其父元素第二个 <p> 元素的每个 <p> 元素。 |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 同上,从最后一个元素开始计算 |
:last-child | p:last-child | 选择其父元素的最后元素的每个 <p> 元素。 |
:root | :root | 选择文档的根元素 |
:empty | p:empty | 选择没有子元素的每个p元素(包括文本节点) |
:target | #news:target | 选择活动的#news元素 |
:not(selector) | :not(p) | 选择非p的每个元素 |
::selection | ::selection | 选择被用户选取的元素部分 |
:enabled | input:enabled | 选择可用的input元素 |
:disabled | input:disabled | 选择禁用的input元素 |
:checked | input:checked | 选择选中的input元素 |
其实对于这些选择器是再熟悉不过了。列举了其中一些选择器的例子:
nth-child(n)
<!DOCTYPE html>
<html>
<head>
<style>
p:nth-child(odd)
{
background:#ff0000;
}
p:nth-child(even)
{
background:#0000ff;
}
</style>
</head>
<body>
<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>
</body>
</html>
其中odd 和even 是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是 1)。
另外一个例子:
<!DOCTYPE html>
<html>
<head>
<style>
p:nth-child(2n+1)
{
background:#ff0000;
}
</style>
</head>
<body>
<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>
<p>第五个段落。</p>
<p>第六个段落。</p>
<p>第七个段落。</p>
<p>第八个段落。</p>
<p>第九个段落。</p>
</body>
</html>
注意这里的字母n只能是n,不能使用其他字符,否则会不能匹配。