第二个div位置绝对。第一个div占用外部div宽度的60%,但是第二个div占用整个屏幕的60%宽度。我知道在第一个div上指定位置:relative可以解决问题。除了指定位置:relative之外,还有其他方法可以解决吗?
options
.outer {
height: 100px;
width: 100px;
}
.first {
background: black;
width: 60%;
color: white;
}
.second {
position: absolute;
width: inherit;
background: yellow;
color: black;
}
答案 0 :(得分:2)
如果外部div具有定义的宽度,则可以依靠CSS变量来定义百分比,并且继承将按预期进行:
.outer {
height: 100px;
--w:100px;
width: var(--w);
}
.first {
background: black;
width: calc(0.6 * var(--w));
color: white;
}
.second {
position: absolute;
width: inherit;
background: yellow;
color: black;
}
<div class="outer">
<div class="first">
parent
<div class="second">
child
</div>
</div>
</div>
答案 1 :(得分:0)
如果您事先不知道父元素的宽度,则可以使用document.getElementById('parentID').getBoundingRect().width
在javascript中计算其宽度,然后使用该值将子元素的大小调整为该值的60%。
但是您为什么不想在父级上使用position: relative
?