- #id
- *
- element
- element, element
- element > element
- element + element 选中所有前面一个元素是div元素的p元素 div + p
- element ~ element p~ul 选中所有前面有p元素的每个ul元素
- [attribute] 获取具备某个属性的所有元素 [href], 可以用此方法获取document.querySelector(‘[href]’)
- [attribute=value]等于某个值
- [attribute~=value]包含某个值,将属性值以空格分割成数组,然后和数组里某一个值完全匹配的才能命中
- [attribute|=value]命中以什么开头的元素,用-分割,并且开头要完全相等才能匹配,例如
- [attribute^=value] 以什么开头的值[href^=https]
- [attribute$=value] 以什么结束的值[src$=”.js”]注意$=后面必须用””扩起来使用,否则会抛出异常
- [attribute=value] 命中包含匹配值的元素[src=”.js”]注意*=后面必须用””扩起来使用,否则会抛出异常
- p:first-letter 命中p元素中的首个文字
- p:first-line 命中p元素中的第一行的内容
- p:first-child 命中任意父元素中第一个元素是p的元素,并且不允许迭代计算
- p:last-child 命中其父元素中最后一个子元素是p的元素,并且不允许迭代计算
- p:only-child 选择属于其父元素的唯一子元素的每个
- p:before 在每个p元素的开始位置追加内容
- p:after 在每个p元素的结束位置追加内容
- p:first-of-type 选择属于其父元素的首个
元素的每个
- p:last-of-type 选择属于其父元素的最后
元素的每个
- p:only-of-type 选择属于其父元素唯一的
元素的每个
- 注意:first-of-type 与 first-child的区别
- p:nth-child(2) 选择父元素下的第二个元素并且是p元素
- p:nth-last-child(2) 选择父元素下的倒数第二个元素并且是p元素
- p:nth-of-type(2) 选择父元素下第二个p元素
- p:nth-last-of-type(2) 选择父元素下第二个p元素
- p:nth-child(odd) 选择父元素下的奇数位的p元素
- p:nth-child(even) 选择父元素下的偶数位的p元素
- p:nth-child(an + b) 选择父元素下的an+b位置的元素
#id
*
element
element, element
element > element
element + element 选中所有前面一个元素是div元素的p元素 div + p
<body><div></div><p>被命中</p><p>不被命中,因为前面一个元素不是div元素</p></body>
element ~ element p~ul 选中所有前面有p元素的每个ul元素
<body><ul><li>不被命中,因为前面没有p元素</li></ul><p>第一段。</p><ul><li>当前ul被命中</li></ul><ul><li>当前ul被命中</li></ul></body>
[attribute] 获取具备某个属性的所有元素 [href], 可以用此方法获取document.querySelector(‘[href]’)
[attribute=value]等于某个值
[attribute~=value]包含某个值,将属性值以空格分割成数组,然后和数组里某一个值完全匹配的才能命中
<img src="/i/eg_tulip.jpg" title="tulip flower" rel="apple-touch-icon-precomposed" />[title~=flower] // 注意,属性值用空格分割,要全等于才命中 [title~=f] 这种不命中{border:5px solid yellow;}
[attribute|=value]命中以什么开头的元素,用-分割,并且开头要完全相等才能匹配,例如
[class|=en]className="en" 匹配className="en-xxx" 匹配className="enxxx" 不匹配
[attribute^=value] 以什么开头的值[href^=https]
[attribute$=value] 以什么结束的值[src$=”.js”]注意$=后面必须用””扩起来使用,否则会抛出异常
[attribute=value] 命中包含匹配值的元素[src=”.js”]注意*=后面必须用””扩起来使用,否则会抛出异常
p:first-letter 命中p元素中的首个文字
p:first-letter{font-size:200%;color:#8A2BE2;}<p>我爱你</p> <!-- 命中"我"字 -->
p:first-line 命中p元素中的第一行的内容
p:first-child 命中任意父元素中第一个元素是p的元素,并且不允许迭代计算
<body><p>被命中</p> <!-- 因为他是body中第一个p元素 --><h1><span>不被命中</span></h1><p><p>虽然我是p元素下的第一个p元素,但是我不被命中</p>不被命中</p><div><p>被命中</p> <!-- 因为他是div中第一个p元素 --><p>不被命中</p></div></body>
p:last-child 命中其父元素中最后一个子元素是p的元素,并且不允许迭代计算
p:only-child 选择属于其父元素的唯一子元素的每个
元素。
<body><h1>任意内容<p>被命中,因为我是h1中最后一个元素并且是p元素</p></h1><div><p>被命中,因为我是div中最后一个元素并且是p元素</p></div><p>第一个段落。<p>第一个段落。</p></p><p>第二个段落。<p>第一个段落。</p><p>第一个段落。</p></p><p>第三个段落。</p><p>第四个段落。</p><p>被命中,因为我是body中最后一个元素并且是p元素。</p></body>
p:before 在每个p元素的开始位置追加内容
p:before{content:"台词:";}<p>我是唐老鸭。</p><p>我住在 Duckburg。</p>结果<p>::before我是唐老鸭。</p><p>::before我住在 Duckburg。</p>最终结果展示台词:我是唐老鸭。台词:我住在 Duckburg。
p:after 在每个p元素的结束位置追加内容
.item {&:last-child:after {border-bottom: none;}&:after{content: ' ';width: 96%;margin: 0 auto;border-bottom: 1px solid #eee;display: block;}}
p:first-of-type 选择属于其父元素的首个
元素的每个
元素。
p:last-of-type 选择属于其父元素的最后
元素的每个
元素。
p:only-of-type 选择属于其父元素唯一的
元素的每个
元素。
注意:first-of-type 与 first-child的区别
first-of-type验证的是类型,first-child验证的是子内容,例
<div><!-- div的第一个p元素 p:first-of-type 命中,p:first-child 命中--><p></p><!-- div的第一个h1元素 h1:first-of-type 命中,h1:first-child 不命中,因为不是div的第一个元素--><h1></h1></div>
p:nth-child(2) 选择父元素下的第二个元素并且是p元素
p:nth-last-child(2) 选择父元素下的倒数第二个元素并且是p元素
p:nth-of-type(2) 选择父元素下第二个p元素
p:nth-last-of-type(2) 选择父元素下第二个p元素
p:nth-child(odd) 选择父元素下的奇数位的p元素
p:nth-child(even) 选择父元素下的偶数位的p元素
p:nth-child(an + b) 选择父元素下的an+b位置的元素
使用公式 (an + b)。描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值。在这里,我们指定了下标是 3 的倍数的所有 p 元素的背景色:p:nth-child(3n+0)
| :link | a:link | 选择所有未被访问的链接。 | 1 |
|---|---|---|---|
| :visited | a:visited | 选择所有已被访问的链接。 | 1 |
| :active | a:active | 选择激活链接(被按下时,触发)。 | 1 |
| :hover | a:hover | 选择鼠标指针位于其上的链接。 | 1 |
| :focus | input:focus | 选择获得焦点的 input 元素。 | 2 |
| :root | :root | 选择文档的根元素。 | 3 |
|---|---|---|---|
| :empty | p:empty | 选择没有子元素的每个 元素(包括文本节点)。 |
3 |
| :target | #news:target | 选择当前活动的 #news 元素。 | 3 |
| :enabled | input:enabled | 选择每个启用的 元素。 | 3 |
| :disabled | input:disabled | 选择每个禁用的 元素 | 3 |
| :checked | input:checked | 选择每个被选中的 元素。 | 3 |
| :not(selector) | :not(p) | 选择非 元素的每个元素。 |
3 |
| ::selection | ::selection | 选择被用户选取的元素部分。 | 3 |
