请问css后代选择器的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/19 23:43:01
请问css后代选择器的问题?
<style>
.a{
border:1px solid red;
width:100px;
text-align:center;
height:20px;
line-height:16px;
}
.b{
border:1px solid green;
display:none;
position:absolute;
left:200px;
}
div.a:hover div.b{
display:block;
}
</style>
<div class="a">菜单
<div class="b">111</div>
</div>

我给.b设置了absolute绝对定位后;(.b)就脱离了(.a)了,就不属于(.a)父块了

为什么(div.a:hover div.b)后代选择器还可以生效呢,请指教!

position只影响的是位置关系,在DOM树上的继承关系还是不变的。即使父层在左上层,子层在右下角,但他们还是父子关系,存在继承的!而你所谓的脱离也只是位置上的,而不是继承上的。

<DIV id="b"><div id="a"></div></div>不管你如何定义b和a,也不管位置如何,已经决定a继承b的关系已经确定了!

这里的b只是相对于a的绝对位置!这样还是会影响到b!