CSS :only-of-type伪类选择器用于匹配父元素中没有相同类型的唯一子元素。
例如,如果有下面的一段HTML代码,使用p:only-of-type规则可以匹配<article>元素中的p段落元素:
<article>
<h1>标题</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
</p>
</article>
但是如果修改一个HTML代码,再增加一个p段落,那么上面的CSS规则将不会匹配任何的p段落元素:如下:
<article>
<h1>标题</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit...
</p>
</article>
:only-of-type伪类选择器和:only-child伪类选择器很像,:only-child伪类选择器会匹配父元素中的唯一子元素,它不管类型,只要是唯一子元素就被匹配。
示例代码
下面都是有效的:only-of-type规则。
article:only-of-type { /* */}
span:only-of-type { /* */}
a:only-of-type:hover { /* */}
p:only-of-type a { /* */}
在线演示
下面的例子中有两个<article>元素,使用p:only-of-type对匹配只有唯一段落元素的第一个<article>元素中的p段落。
标题
这个段落是父元素中的唯一段落元素。(这个段落会被匹配)
标题
这是段落1
这是段落2
浏览器支持
所有的现代浏览器都支持:only-of-type伪类选择器,包括:Chrome, Firefox, Safari, Opera9.5+, Internet Explorer 9+ 以及 Android 和 iOS。