Заставить элемент занять две колонки - PullRequest
0 голосов
/ 08 ноября 2018

Я пытался добиться стиля каменной кладки, используя css с разметкой столбцов, как разметка ниже.

Я хочу знать, можно ли заставить .green один взять два столбца вместо одного?

Заранее спасибо!

.parent{
    column-gap: 1rem;
    column-count: 2;
}
.element{
  display:inline-block;
  background:red;
  width:100%;
  height:100px;
}

.green{
  background:green;
}
<div class="parent">

  <div class="element green">
  </div>
  
  <div class="element">
  </div>
  
  <div class="element">
  </div>
  
  <div class="element">
  </div>
  
</div>

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

CSS Grid макет обеспечивает простое, легкое и эффективное решение.

.parent {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 100px;
  grid-gap: 1rem;
}

.element.green {
  grid-column: 1 / -1;
  background: green;
}

.element {
  background: red;
}
<div class="parent">
  <div class="element green"></div>
  <div class="element"></div>
  <div class="element"></div>
  <div class="element"></div>
</div>

Дополнительная информация:

0 голосов
/ 08 ноября 2018

Я бы сказал, нет, вы не можете заставить один элемент .green занимать два столбца, потому что вы специально указываете браузеру использовать два столбца. Если вам нужно охватить два столбца, я бы предложил использовать отдельный элемент. Возможно, более подходящее решение для этого было бы использовать макет сетки CSS. Фрагмент ниже содержит пример обоих этих решений:

.parent {
  column-gap: 1rem;
  column-count: 2;
}

.element {
  display: inline-block;
  background: red;
  width: 100%;
  height: 100px;
}

.green {
  background: green;
  width: 100%;
  height: 100px;
  margin-bottom: 1rem;
}

.grid-container {
  margin-top: 20px;
  display: grid;
  grid-template-columns: auto auto;
  grid-gap: 1rem;
}

.greenGrid {
  background: green;
  height: 100px;
  grid-column-start: 1;
  grid-column-end: 3;
}

.redGrid {
  background: red;
  height: 100px;
}
<div class="green">
</div>


<div class="parent">


  <div class="element">
  </div>

  <div class="element">
  </div>

  <div class="element">
  </div>

</div>

<div class='grid-container'>
  <div class='greenGrid'></div>
  <div class='redGrid'></div>
  <div class='redGrid'></div>
  <div class='redGrid'></div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...