html中设置父盒子的高度,【CSS】设置浮动元素高度等于父元素

最近在练习中发现了这样一个问题:

红色边框为没有设置高度的父元素(.parent),两个子元素(.left,.right)都设置为左浮动,父元素被右边的元素(.right)撑开。现在我想让左边的元素(.left)高度与父元素相同。

9bc28c629c26

目前效果

9bc28c629c26

期望效果

起初我将左边的子元素(.left)高度设置为100%,即

height = 100%;

但是并没有什么用。

想了各种办法都不能解决,后来想到可以用js,即

$('.left').css('height', $('.right').innerHeight());

但是用js来解决定位问题太大材小用,也不符合规范。

几经周折,在网上找到了解决办法——用绝对定位。但是,如果简单地把左边的子元素设置为绝对定位,会出现这样的情况:

9bc28c629c26

意外情况

因为左边的子元素被设置为绝对定位,已经脱离了正常的文本流。

这里把左边的子元素再包裹一层,设置.left-warp为绝对定位。此时发现.left与.right的位置反了,所以在html代码中将两个子元素的位置对调,再把他们设置为右浮动,这样就达到了要求。

具体代码如下

right

left

.parent {

width: 300px;

border: 2px solid red;

margin: 30px auto;

}

.clearfix:after {

content: " ";

display: block;

clear: both;

}

.left, .right{

text-align: center;

}

.left-wrap {

float: right;

width: 100px;

}

.left{

position: absolute;

width: 100px;

background-color: pink;

line-height: 200px;

}

.right{

width: 200px;

height: 200px;

float: right;

background-color: lightblue;

line-height: 200px;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值