如下图。H为黑色边框即父元素。A,B为子元素,均向左浮动。由于黑色边框设置了overflow:hidden
(height属性不设置),B撑大了父元素H,使得H有了高度且为B的高度。
那么问题来了,如何让A的高度等于父元素H的高度?
如下图。H为黑色边框即父元素。A,B为子元素,均向左浮动。由于黑色边框设置了overflow:hidden
(height属性不设置),B撑大了父元素H,使得H有了高度且为B的高度。
那么问题来了,如何让A的高度等于父元素H的高度?
.root{
position:relative;
overflow:hidden;
}
.left{
position:abusolute;//左侧元素拖出文档流,父容器高度=右,左底部超级长,但是被父元素隐藏;
padding-bottom:9999rem;
}
这种方法不适用左侧有“可能”比右侧长的情况,也就是说左侧再长,也撑不开父容器;
<style>
.box{ position: relative; width: 160px; border: 1px solid #000;}
.box .a{ width: 50px; height: 200px; background: #ccc;}
.box .b{ left: 60px; top: 0; width: 100px; height: 400px; background: #eee; position: absolute;}
</style>
<div class="box">
<div class="a">A</div>
<div class="b">B</div>
</div>
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.4k 阅读
4 回答2.2k 阅读
3 回答2.1k 阅读
如果用js就很easy了:
当然,纯粹的定位问题一般不建议用js。
应用float的元素设置
height:100%;
是没用的,但是绝对定位可以。所以,把.left又包了一层,结构如下:
可以参考这个问题(Mandarinazul的回答):http://stackoverflow.com/questions/3049783/how-to-make-a-floated-div-100-height-of-its-parent