美文网首页
IE11解决flex-basis和border一起设置不能用的问

IE11解决flex-basis和border一起设置不能用的问

作者: ofelia_why | 来源:发表于2020-11-01 18:26 被阅读0次

需求是实现每行三个,超过就自动换行,这时候一般就用到flex了

ul {
            width: 300px;
            list-style: none;
            padding: 0;
            display: flex;
            flex-wrap: wrap;
            margin: 0 -2.5px;
            text-align: left;
        }

        li {            
            border: 1px solid #d1cbcb;
            border-radius: 1px;
            box-sizing: border-box;
            flex-grow: 0;
            flex-shrink: 0;
            flex-basis: calc(100% / 3 - 5px);
            margin: 0 2.5px 5px;
            text-align: center;
            background: yellowgreen;
        }
<ul>
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
        <li>hello</li>
</ul>

一般的浏览器都是好的


chrome

但是IE11,却出现了问题


ie with border

找啊找,结果发现是border的问题,去掉border之后就好了,但是border是必须的


ie without border

原因是因为ie上的box-sixing:border-box 是没有用的,所以要改变flex-basis,多减去2个px,左右的border的宽度

flex-basis默认作用在content box上,IE11会忽略box-sizing;https://blog.csdn.net/qq_41635167/article/details/104190865

flex-basis with 2px border size

但是不能为了ie,让别的浏览器小了吧,所以继续找方法

结果在一个日语博客里面找到办法了,再加一个max-width来修好了这个问题,还好学了一丢丢日语可以看懂了,

max-width: 184px; /* ← これを追加 */
https://qiita.com/koppayashi/items/5bec609b111b4a01e197

add max-width to fixes ie11

相关文章

  • IE11解决flex-basis和border一起设置不能用的问

    需求是实现每行三个,超过就自动换行,这时候一般就用到flex了 一般的浏览器都是好的 但是IE11,却出现了问题 ...

  • flex布局中flex:1;三个值代表

    flex:1 flex-basis flex-basis 用于设置子项的占用空间。(该属性用来设置元素的宽度,其实...

  • css flex内容溢出

    flex溢出的根本原因是 flex-basis + 解决方法 设置width属性,一般设置为width: 0 mi...

  • css写三角形

    主要方式是采用width 为0,设置border宽度解决 代码

  • 边框和背景

    边框 border border-width: 设置边框的宽度。 border-style: 设置边框的样式。 b...

  • 第三章 CSS3 边框

    css1和css2 中的边框属性 border-width 设置元素边框粗细 border-style 设置元素边...

  • flex-basis,flex-grow,flex-shrink

    flex-basis 设置子项占用空间(默认:auto),如果没有设置就使用width/height,否则由内容撑...

  • 8.边框相关属性

    设置边框宽度 border: 3px; 设置边框风格 border-style: solid; 设置边框颜色 bo...

  • 工作笔记

    ios默认盒子模型为content-box;而安卓和谷歌是border-box。解决方法:给input设置box-...

  • el-table显示边框

    添加border显示边框,同时需要设置el-table--border th的border属性

网友评论

      本文标题:IE11解决flex-basis和border一起设置不能用的问

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