css - 让浮动元素高度等于父元素高度

查看:401
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆