html flex 浮动失效,css3中flex布局宽度不生效的解决

两列布局项目中经常会用到,很多种方法可以做这样的效果

bc44799ccba7556c2540c933ec0429ba.png

但是最方便的还是要属flex了,给外层父元素设置display:flex;然后子元素,宽度自适应的那个设置

flex-grow:1;,另外一个设置固定宽度就可以做到,一个固定另一个自适应了。

具体代码如下:

flex 宽度不生效

/* 重置样式 */

* {

margin: 0px;

padding: 0px;

}

/* 设置外层display为flex */

.box {

display: flex;

height: 100px;

width: 100%;

}

/* 左边自适应 */

.box .left {

flex-grow: 1;

background: red;

}

/* 右边固定 */

.box .right {

width: 200px;

background: yellow;

}

这段代码的运行结果就是上面截图那样,但是这个代码有一个小小的bug,那就是当我们左边(自适应那边)内部如果有内容,并且内容的宽度超过了left的宽度的时候,就会把右边(固定宽度)挤小,你会发现你给的固定宽度(例子中的200px)不生效了,或者出现滚动条。

我们在左边加一点内容,并且让他超出宽度。

/* 超出的内容 样式 */

.box .left .content {

width: 1000px;

}

运行结果:

fc447304df7e533054ddd7eb0c2044ee.png

内容超出,并出现了滚动条。这个问题很好解决,只需要在left上面加上溢出隐藏的属性,就可以了。

/* 左边自适应 */

.box .left {

flex-grow: 1;

background: red;

overflow: hidden;

}

94bb31b679e7128a43f6b61836cd47c8.png

但是问题又来了,右边出来了,可是它的宽度变小了,不足200了。

这个问题呢,其实也很容易,给右边的div(right)加上min-width:200px;就完美了。

/* 右边固定 */

.box .right {

width: 200px;

min-width: 200px;

background: yellow;

}

1839e93817f7cfcc3338feb9acdbbe65.png

这样不管你,什么屏幕,或者怎么拖放都能完美兼容了。。。

到此这篇关于css3中flex布局宽度不生效的解决的文章就介绍到这了,更多相关flex布局宽度不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值