【问题标题】:Why is HTML holy grail with flex works on Chrome but not on Firefox? [duplicate]为什么带有 flex 的 HTML 圣杯可以在 Chrome 上运行,但不能在 Firefox 上运行? [复制]
【发布时间】:2023-03-17 23:57:01
【问题描述】:

代码:http://plnkr.co/edit/swHKE2?p=preview。请参阅下面的 sn-p。

代码是Holy grail的示例。

在 Chrome (v46.0.2490.80 m) 上完美运行 - 有页眉、页脚、侧边,只有内容可以滚动而不隐藏框架。

在 FF (v42.0) 上,垂直滚动在所有内容上,忽略 flex 指令。

知道如何修复样式以在 FF 上获得正确的行为吗?谢谢。

<html style="height: 100%">
  <head>
    <meta charset=utf-8 />
    <title>Holy Grail</title>
  </head>
  <body style="display: flex; height: 100%; flex-direction: column">
    <div>HEADER<br/>------------
    </div>
    <!-- No need for 'flex-direction: row' because it's the default value -->
    <div style="display: flex; flex: 1">
      <div>NAV|</div>
      <div style="flex: 1; overflow: auto">
        CONTENT - START<br/>
        <script>
        for (var i=0 ; i<1000 ; ++i) {
          document.write(" Very long content!");
        }
        </script>
        <br/>CONTENT - END
      </div>
      <div>|SIDE</div>
    </div>
    <div>------------<br/>FOOTER</div>
  </body>
</html>

【问题讨论】:

    标签: html css google-chrome firefox flexbox


    【解决方案1】:

    这与 flexbox 规范的 implied minimum sizing algorithm 有关。

    我相信这是Firefox bug

    min-width: 0; min-height: 0 添加到第一个嵌套的 flex 容器似乎可以解决问题:

    <body style="display: flex; height: 100%; flex-direction: column">
      <div>HEADER<br/>------------
      </div>
      <!-- No need for 'flex-direction: row' because it's the default value -->
      <div style="display: flex; flex: 1; min-width: 0; min-height: 0;"> <!-- ADJUSTEMENT -->
        <div>NAV|</div>
              ...
              ...
              ...
              ...
    

    更多信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      相关资源
      最近更新 更多