:only-child
【资料图】
官方定义:当当前元素的父元素,有且只有它本身一个子元素(DOM节点)时,修改其样式
:only-of-type
官方定义:当当前元素在其父元素的子元素序列中,没有其它相同兄弟元素(唯一的,有且只有一个它本身)时,修改其样式
注意:
在官方文档中,这两个伪类的定义如上所述(在我理解中),但亲自测试后,发现,这两个伪类所实现的效果竟然一样(见下面案例),因此这里特别记录下,另外,考虑到本人才疏学浅,可能没有正确的使用到这两个伪类,如果有知道正解的看官,烦请不吝赐教,感激不尽!
触发条件:(自己总结),当当前元素,在整个html文档中、或在其父元素的所有子元素序列中,有且只有一个它本身(没有其他相同兄弟元素)、或在其父元素的子元素中,只有它本身,修改其样式
兼容:IE8及8以下不支持 Opera9.5以下不支持
举个栗子
html代码:(为了避免权重问题,我分别为案例中所有的元素取了class名)
我是div下的span(唯一的) 我是div下的i(唯一的) 我是div下的p1我是div下的p2我是div下的span(唯一的) 在整个html文档中,我是唯一的b元素
css代码:
.main{ width: 40%;}.div{ margin-bottom: 30px; width: 100%; border: 1px solid #eee;}.p{ width: 100%; font-size: 14px; line-height: 20px; text-align: center; color:#660033;}.main:only-child{ display: inline-block; text-align: left;/* 左对齐 */ color:#99FF33;/* 绿色 */}/* 下面的声明覆盖了上面的声明 */.main:only-of-type{ display: inline-block; text-align: right;/* 右对齐 */ color:red;/* 红色 */}
效果图: