经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Flex » 查看文章
css3中flex布局宽度不生效的解决_css3_CSS
来源:jb51  时间:2020/12/14 17:00:36  对本文有异议

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

在这里插入图片描述

但是最方便的还是要属flex了,给外层父元素设置display:flex;然后子元素,宽度自适应的那个设置
flex-grow:1;,另外一个设置固定宽度就可以做到,一个固定另一个自适应了。

具体代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>flex 宽度不生效</title>
  7. </head>
  8. <body>
  9. <style>
  10. /* 重置样式 */
  11. * {
  12. margin: 0px;
  13. padding: 0px;
  14. }
  15. /* 设置外层display为flex */
  16. .box {
  17. display: flex;
  18. height: 100px;
  19. width: 100%;
  20. }
  21. /* 左边自适应 */
  22. .box .left {
  23. flex-grow: 1;
  24. background: red;
  25. }
  26. /* 右边固定 */
  27. .box .right {
  28. width: 200px;
  29. background: yellow;
  30. }
  31. </style>
  32. <!-- 外层盒子 -->
  33. <div class="box">
  34. <!-- 左侧 -->
  35. <div class="left"></div>
  36. <!-- 右侧 -->
  37. <div class="right"></div>
  38. </div>
  39. </body>
  40. </html>

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

  1. /* 超出的内容 样式 */
  2. .box .left .content {
  3. width: 1000px;
  4. }
  1. <!-- 左侧 -->
  2. <div class="left">
  3. <!-- 超出的内容 -->
  4. <div class="content"></div>
  5. </div>

运行结果:

在这里插入图片描述

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

  1. /* 左边自适应 */
  2. .box .left {
  3. flex-grow: 1;
  4. background: red;
  5. overflow: hidden;
  6. }

在这里插入图片描述

但是问题又来了,右边出来了,可是它的宽度变小了,不足200了。
这个问题呢,其实也很容易,给右边的div(right)加上min-width:200px;就完美了。

  1. /* 右边固定 */
  2. .box .right {
  3. width: 200px;
  4. min-width: 200px;
  5. background: yellow;
  6. }

在这里插入图片描述

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

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号