:only-child和:only-of-type选择器的比较

:only-child

当元素是唯一的子元素,被选择。

HTML代码:

<body>
<div class="x">
<div>第一个DIV</div>
<div>第一个DIV</div>
<p>第一个P</p>
</div>
</body>

效果图:

 

CSS代码:

<style>
div:only-child{
    background-color:red;
}
</style>

因为div是body元素的唯一子元素,所以整个DIV都会变红。

演示图:

 

 

CSS代码:

<style>
p:only-child{
    background-color:red;
}
</style>

因为P元素不是div元素的唯一元素,所以P的背景颜色不会变红。

演示图:

 

 

 :only-of-type

选择特定的,唯一类型的子元素。

HTML代码:

<body>
<div id="main" class="x">
<div id="a">第一个DIV</div>
<div id="b">第一个DIV</div>
<p>第一个P</p>
</div>
</body>

 

CSS代码:

<style>
div:only-of-type{
    background-color:red;
}
</style>

此时选择的div,是id为main的div,它是元素body的唯一类型(div)的元素,所以整个div会变红。

演示图:

 

而当把CSS代码修改成下面的代码,结果就会不同。

CSS代码:

<style>
.x div:only-of-type{
    background-color:red;
}
</style>

此时选择的div,是id为a和b的div,因为不是唯一,所以背景颜色不会变红。

演示图:

 

如果把CSS代码中的div,改成p后,p的背景颜色会变红,因为p是div里唯一类型的元素。

CSS代码:

<style>
p:only-of-type{
    background-color:red;
}
</style>

演示图:

 

转载于:https://www.cnblogs.com/huangminjian/p/10650049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值