html - IE 11 上的 Flexbox row-reverse 打破了 align-items

标签 html css google-chrome flexbox internet-explorer-11

此笔在 IE11 和 Chrome 之间的行为不同:https://codepen.io/excelkobayashi/pen/EMgaOE

HTML:

<div class="container">
    <div class="left"></div>
    <div class="right"></div>
</div>

相关 CSS:

.container
{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap-reverse;
    align-items: flex-end;
}

预期结果和 Chrome 行为:两个 div 都与父级的顶部对齐。 IE11 结果:两个 div 都与父级的底部对齐。

出于某种原因,IE11 将元素对齐到底部,忽略了 row-reverse 应该将 flex-start 和 flex-end 的位置交换为 align-items 的事实。

但是,我在这里找不到任何说明 IE 应该有所不同的文档,而 IE11 官方文档说它应该与 Chrome 行为相匹配:https://msdn.microsoft.com/en-us/ie/jj127298(v=vs.94)

有什么办法可以解决这个问题吗?

最佳答案

为IE添加margin-top: 0px;

.left, .right
{
    margin: 5px;
    width: 200px;
    height: 200px;
    margin-top: 0px;
}

如果你只想要 IE 而不是其他浏览器,你可以在你的 html 中添加注释样式

    <!--[if IE]>
    <style>
    .left, .right
    {
       margin-top: 0px !important;
    }
    </style>
    <![endif]-->
    <div class="container">
        <div class="left"></div>
        <div class="right"></div>
    </div>

关于html - IE 11 上的 Flexbox row-reverse 打破了 align-items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54987730/

相关文章:

javascript - jquery simpleweather 无法识别

python - 如何使用 beautifulsoup 提取 onClick url

css - 包装 flex 元素之间不需要的空间

css - 如何在 Bootstrap 4 中的面包屑元素右侧插入按钮?

jquery - 每四个元素后与 hr 进行画廊设计

javascript - iFrame 元素未在容器内调整大小的问题

jquery - 修复了 jQuery Mobile 表中的 thead

html - 为什么 background-image 不像 background-color 那样扩展到 webkit 中的过度滚动?

google-chrome - Chrome中的contentEditable上标和下标

google-chrome - 如何转让 chrome 扩展程序的所有权?