白云岛资源网 Design By www.pvray.com
两列布局项目中经常会用到,很多种方法可以做这样的效果
但是最方便的还是要属flex了,给外层父元素设置display:flex;然后子元素,宽度自适应的那个设置
flex-grow:1;,另外一个设置固定宽度就可以做到,一个固定另一个自适应了。
具体代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>flex 宽度不生效</title> </head> <body> <style> /* 重置样式 */ * { 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; } </style> <!-- 外层盒子 --> <div class="box"> <!-- 左侧 --> <div class="left"></div> <!-- 右侧 --> <div class="right"></div> </div> </body> </html>
这段代码的运行结果就是上面截图那样,但是这个代码有一个小小的bug,那就是当我们左边(自适应那边)内部如果有内容,并且内容的宽度超过了left的宽度的时候,就会把右边(固定宽度)挤小,你会发现你给的固定宽度(例子中的200px)不生效了,或者出现滚动条。
我们在左边加一点内容,并且让他超出宽度。
/* 超出的内容 样式 */ .box .left .content { width: 1000px; }
<!-- 左侧 --> <div class="left"> <!-- 超出的内容 --> <div class="content"></div> </div>
运行结果:
内容超出,并出现了滚动条。这个问题很好解决,只需要在left上面加上溢出隐藏的属性,就可以了。
/* 左边自适应 */ .box .left { flex-grow: 1; background: red; overflow: hidden; }
但是问题又来了,右边出来了,可是它的宽度变小了,不足200了。
这个问题呢,其实也很容易,给右边的div(right)加上min-width:200px;就完美了。
/* 右边固定 */ .box .right { width: 200px; min-width: 200px; background: yellow; }
这样不管你,什么屏幕,或者怎么拖放都能完美兼容了。。。
白云岛资源网 Design By www.pvray.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
白云岛资源网 Design By www.pvray.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。