美文网首页
css display:flex 弹性布局 子标签设置宽度无效的

css display:flex 弹性布局 子标签设置宽度无效的

作者: CoderZb | 来源:发表于2021-08-18 10:02 被阅读0次
    image.png

    以上截图,代码中名为类型:的 div标签设置宽度90px。但是在展示时宽度为74.94px

    表面原因:

    截图中父标签中嵌入了两个子标签,当父标签设置display:flex之后,子标签中 右边的input会把左边的标签挤掉一部分,所以导致了左边的宽度显示有问题。

    根本原因:

    父元素设置了display:flex,那么所有的子标签都会默认加上flex:0 1 auto;其中1 就是 flex中的 flex-shrink 属性,表示开启了元素的收缩功能,所以才会有90px变成了74.94px的问题。实际上也不一定为74.94px,也可能为60px,也可能为40px.....。
    因此其中一种做法是:我们可以让该标签的自动收缩关闭,即flex:0 0 auto;,然后再设置该标签的宽度即可。

    解决办法(4种)

    做法1:

    flex: 0 0 auto;
    width: 90px;
    

    做法2:

    flex: 0 0 90px;
    

    做法3:(我用的这种)

    flex-shrink:0;
    width: 90px;
    

    做法4:

    min-width:90px;
    

    相关文章

      网友评论

          本文标题:css display:flex 弹性布局 子标签设置宽度无效的

          本文链接:https://www.haomeiwen.com/subject/zqzwbltx.html