Как вы можете заполнить столбцы сеткой css? - PullRequest
2 голосов
/ 02 апреля 2020

В приведенном ниже примере я хочу, чтобы элементы левого столбца, charlie, delta, echo деления, имели полную ширину (занимают оба столбца).

примечания:

  • может быть произвольное количество элементов типа .r1, .r2 правого столбца (ноль - N), поэтому я не буду точно знать, сколько строк должно быть справа против левого
  • в настоящее время .a (acme) зависит от высоты .r1, это не желательно! должны иметь независимую высоту
  • , пожалуйста, нажмите кнопку «Запустить фрагмент кода» ниже, чтобы увидеть, что происходит, а также изображение ниже, показывающее вид макета, который меня интересует

.g {
  display: grid;
  gap: .25rem;
  grid-template-columns: 1fr 100px;
  grid-auto-flow: dense;
}

.gi {
  padding: 1rem;
  border: 1px solid;
  border-radius: .25rem;
  background-color: rgba(0, 0, 0, 0.1);
}

.l {
  grid-column: 1
}

.r { grid-column: 2 }
.r1 { grid-row: 1; height: 100px;}
.r2 { grid-row: 2}
<div class="g">
  <div class="gi l a">Acme</div>
  <div class="gi l b">Beta</div>
  <div class="gi l c">Charlie</div>
  <div class="gi l d">Delta</div>
  <div class="gi l e">Echo</div>
  <div class="gi r r1">Right 1</div>
  <div class="gi r r2">Right 2</div>
</div>

Изображение нужного макета:

example css grid showing columns

1 Ответ

3 голосов
/ 02 апреля 2020

У вас есть два вопроса в вашем вопросе:

  1. Вы хотите, чтобы области сетки в первом столбце расширялись во второй столбец, когда пространство строк не занято.

  2. Вы хотите, чтобы области сетки в одном столбце имели переменную высоту, но не влияли на высоты областей сетки в другом столбце.

CSS Сетка не может делать либо автоматически. Вам необходимо установить дополнительные правила CSS или использовать скрипт.

...