代码之家  ›  专栏  ›  技术社区  ›  Anna_B

为什么Firefox使用水平滚动区来打破我的CSS网格?

  •  0
  • Anna_B  · 技术社区  · 2 年前

    我想使用以下代码:

    * {
      margin: 0;
      padding: 0;
    }
    
    #container {
      grid-column-gap: 10px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      padding: 10px;
    }
    
    .text {
      grid-column-start: 1;
      grid-column-end: 3;
      background-color: red;
      /* overflow: hidden; → Firefox needs that. Why? */
    }
    
    .horizontal-scroll {
      background-color: green;
      overflow-x: auto;
    }
    
    .horizontal-scroll div {
      white-space: nowrap;
      font-size: 30px;
    }
    <div id="container">
      <div class="text">
        <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
          takimata sanctus est Lorem ipsum dolor sit amet.</div>
        <div class="horizontal-scroll">
          <div>This container is horizontally scrollable. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et
            ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</div>
        </div>
      </div>
    </div>

    不幸的是,如果我在macOS上使用Firefox,网格布局就会被破坏。只有当我加上 overflow: hidden; .text 班但这对我来说不是一个解决方案,因为我需要在突出的文本区域内放置一个对象。

    这个问题怎么解决?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Nitin Kumar    2 年前

    不起作用 : 去除 white-space: nowrap;

    * {
      margin: 0;
      padding: 0;
    }
    
    #container {
      grid-column-gap: 10px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      padding: 10px;
    }
    
    .text {
      grid-column-start: 1;
      grid-column-end: 3;
      background-color: red;
      /* overflow: hidden; → Firefox needs that. Why? */
    }
    
    .horizontal-scroll {
      background-color: green;
      overflow-x: auto;
    }
    
    .horizontal-scroll div {
      /* white-space: nowrap; */
      font-size: 30px;
    }
    <div id="container">
      <div class="text">
        <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
          takimata sanctus est Lorem ipsum dolor sit amet.</div>
        <div class="horizontal-scroll">
          <div>This container is horizontally scrollable. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et
            ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</div>
        </div>
      </div>
    </div>

    编辑1:

    使用 width: -moz-available; 在…上 #text