【问题标题】:List item alignment problem with flexbox in IE 11 and EdgeIE 11 和 Edge 中 flexbox 的列表项对齐问题
【发布时间】:2019-11-25 13:29:24
【问题描述】:

我创建了一个有序的问题列表,可以选择编辑或删除每个问题。我正在使用 Bootstrap 4 和 flexboxes 来设计我的网站。该列表在 Firefox 和 Chrome 上看起来不错,但是当我切换到 IE11 或 Edge 时,有一些奇怪的顶部填充,除非我停止在列表中使用 flexbox,否则我似乎无法摆脱。

这是我的列表在 Firefox 和 Chrome 中的样子

这是我的列表在 IE11 和 Edge 中的样子

这是一个带有代码的 JSFiddle:https://jsfiddle.net/0g7mpovu

<ol class="mb-0">
  <li class="px-3 py-1">
    <div class="d-flex">
      <div class="d-flex flex-column align-self-center flex-grow-1 w-100">
        How would you describe a surplus in your own words?
      </div>

      <div>
        <div class="dropdown">
          <button type="button" class="btn btn-link" title="Actions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <i class="fa fa-ellipsis-h text-muted"></i>
          </button>

          <div class="dropdown-menu">
            <a href="#" class="dropdown-item">Edit</a>
            <a href="#" class="dropdown-item">Delete</a>
          </div>
        </div>
      </div>
    </div>
  </li>

  <li class="px-3 py-1">
    <div class="d-flex">
      <div class="d-flex flex-column align-self-center flex-grow-1 w-100">
        What is a fiscal budget?
      </div>

      <div>
        <div class="dropdown">
          <button type="button" class="btn btn-link" title="Actions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <i class="fa fa-ellipsis-h text-muted"></i>
          </button>

          <div class="dropdown-menu">
            <a href="#" class="dropdown-item">Edit</a>
            <a href="#" class="dropdown-item">Delete</a>
          </div>
        </div>
      </div>
    </div>
  </li>
</ol>

如何使我的列表在所有浏览器上看起来都一样?如果需要,我愿意将其更改为表格或其他元素,但我仍想显示数字。

提前感谢您的帮助!

【问题讨论】:

    标签: css bootstrap-4 flexbox internet-explorer-11 microsoft-edge


    【解决方案1】:

    看起来像一个错误。

    这是一个可能的解决方法:

    不要使用块级弹性容器 (display: flex),而是使用添加全宽 (width: 100%) 的内联级容器 (display: inline-flex)。

    将此添加到您的代码中:

    .d-flex {
       display: inline-flex;
       width: 100%;
    }
    

    revised fiddle

    我认为这个错误与下面的帖子有关。但是由于这里的问题仅限于IE11和Edge,而且那里的问题涉及Chrome,所以我没有关闭这个帖子作为重复。

    【讨论】:

    • 非常感谢!这是一个美妙而简单的修复。我没有使用你的 CSS,因为 d-flex 是一个 Bootstrap 4 类,我认为重写它是不明智的。相反,我将&lt;li&gt; 的第一个子div 从&lt;div class="d-flex"&gt; 更改为&lt;div class="d-inline-flex w-100"&gt;。这是我更新的 JSFiddle:jsfiddle.net/nLvxa57y
    • 是的,Bootstrap 类是更明智的选择。为了清晰和演示目的,我发布了纯 CSS。
    猜你喜欢
    • 1970-01-01
    • 2014-06-08
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    相关资源
    最近更新 更多