Какие свойства CSS я должен установить, чтобы столбцы обтекали друг друга, игнорируя высоту горизонтально смежных столбцов?
Не удалосьпопытка
Я пытаюсь сделать это с display: grid
, но это не так, как я хочу.Пример:
header {
height: 2.0rem;
background: PeachPuff;
}
footer {
height: 2.0rem;
background: PaleGreen;
}
header,
footer,
section.app-column {
padding: 1.0rem;
}
section#main section#app-column-primary {
grid-area: primary;
height: 5.0rem;
background: Cyan;
}
section#main section#app-column-secondary {
grid-area: secondary;
height: 15.0rem;
background: Thistle;
}
section#main section#app-column-tertiary {
grid-area: tertiary;
height: 10.0rem;
background: Coral;
}
section#main {
display: grid;
grid-template-columns: repeat(3, 10.0rem);
grid-row-gap: 0.2rem;
grid-column-gap: 0.5rem;
}
section#main {
content: "This application requires a display at least 200 pixels wide.";
}
@media(min-width: 200px) {
section#main {
grid-template-areas:
"primary"
"secondary"
"tertiary";
}
}
@media(min-width: 350px) {
section#main {
grid-template-areas:
"primary secondary"
"tertiary .";
}
}
@media(min-width: 520px) {
section#main {
grid-template-areas:
"primary secondary tertiary";
}
}
<header>Header ipsum, dolor sit amet.</header>
<section id="main">
<section class="app-column" id="app-column-primary">
Primary app column
</section>
<section class="app-column" id="app-column-secondary">
Secondary app column
</section>
<section class="app-column" id="app-column-tertiary">
Tertiary app column
</section>
</section>
<footer>Footer ipsum, dolor sit amet.</footer>
Правильный результат для 3 столбцов и 1 столбца
Это делает то, что мне нужно для трех столбцов ("primary secondary tertiary"
) и одногомакеты столбцов ("primary" "secondary" "tertiary"
).
нежелательный макет для 2 столбцов
номакет с двумя столбцами имеет столбец tertiary
, начинающийся ниже столбца secondary
:
требуемый макет для 2 столбцов
Я хочу, чтобы размещение столбца tertiary
игнорировало столбец secondary
, потому что они вообще не будут перекрываться:
Какя могу сделать это с помощью CSS?display: grid
подходит для этого?Должен ли я использовать display: flex
или что-то другое (если так, какие именно свойства CSS мне нужны)?