'Why does Firefox break my CSS grid with using a horizontal scroll area?

I would like to work with this code:

* {
  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>

Unfortunately, if I use Firefox on macOS, the grid layout gets destroyed. It only works if I add overflow: hidden; to the .text class. But this is not a solution for me, because I need to place an object inside the text area that protrudes from it.

How can this problem be solved?



Solution 1:[1]

NOT WORKING: Remove 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>

EDIT 1:

Use width: -moz-available; on #text

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1