CSS сетка |Как автоматически устанавливать колонки разных размеров? - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь использовать CSS-сетку (впервые), я борюсь с некоторыми основными проблемами.

Я строю нижний колонтитул из трех компонентов.

  #footer-content {
    position: relative;
    margin: 0 auto;
    padding: 0 20px;
    max-width: $max-width;
    width: 100%;
    height: 100%;
    color: white;

    display: grid;
    grid-template-columns: 12% 12% 76%;
}

Для мобильных устройств:

@media only screen and (max-width: 800px) {
  #footer-content {
      grid-template-columns: 50% 50% 100%;
    }
}

Проблема с кодом выше: третий элемент (ширина 100%) не перемещается на следующую строку, а появляется вне экрана.

Использование grid-template-columns: repeat(auto-fit, 50% 50% 100%); не работает.

Использование grid-template-columns: repeat(auto-fit, 50%); работает: третий элемент сдвигается вниз , но имеет ширину только 50% вместо 100%.

Вопрос: Как использовать сетку CSS для автоматического подгонки трех столбцов разных размеров?

1 Ответ

3 голосов
/ 08 апреля 2019

Сетка-столбцы не переносятся, поэтому grid-template-columns: 50% 50% 100%; не имеет смысла для двух столбцов. Вы должны определить ДВА столбца и указать третьему элементу, чтобы они заняли их в следующей строке.

.box {
  height: 150px;
  background: lightblue;
  border: 1px solid grey;
}

#footer-content {
  display: grid;
  grid-template-columns: 50% 50%;
  grid-gap: .25em;
}

.box:nth-child(3) {
  grid-column: span 2;
}
<div id="footer-content">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>
...