css - 让浮动元素高度等于父元素高度
本文介绍了css - 让浮动元素高度等于父元素高度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如下图。H为黑色边框即父元素。A,B为子元素,均向左浮动。由于黑色边框设置了overflow:hidden
(height属性不设置),B撑大了父元素H,使得H有了高度且为B的高度。
那么问题来了,如何让A的高度等于父元素H的高度?
解决方案
如果用js就很easy了:
$('.A').css('height', $('.B').innerHeight());
当然,纯粹的定位问题一般不建议用js。
应用float的元素设置height:100%;
是没用的,但是绝对定位可以。
所以,把.left又包了一层,结构如下:
<div class="container clearfix">
<div class="right">右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。右侧有很多内容,高度大于left。</div>
<div class="left-wrapper">
<div class="left">左侧内容,没有右侧多。左侧内容,没有右侧多。左侧内容,没有右侧多。左侧内容,没有右侧多。</div>
</div>
</div>
.container{position: relative;overflow: hidden;width: 100%;background-color: rgba(255, 255, 0, 1);}
.right{float:right;width:68%;margin-left:2%;background-color: rgba(0, 0, 255, 0.6);}/* 把元素都设置成了右浮动,因为需要绝对定位的元素在左侧 */
.left-wrapper{float:right;width:30%;}
.left{position:absolute;width:30%;height:100%;background-color: rgba(0, 127, 0, 0.6);}/* 一定要设置left的宽度 */
.clearfix:after{content:".";display:block;clear:both;height:0;overflow:hidden;visibility:hidden;}
可以参考这个问题(Mandarinazul的回答):http://stackoverflow.com/questions/3049783/how-to-make-a-floated-div-100-height-of-its-parent
这篇关于css - 让浮动元素高度等于父元素高度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文