#css #css-grid
#css #css-grid
Вопрос:
У меня есть базовый макет сетки, но в контейнере есть зазор между элементами внутри и снизу. Если я удалю grid-template-rows: minmax(0, auto) auto;
, то это пространство исчезнет, но мне нужно это свойство, чтобы box1 и box2 находились в верхней части контейнера. Это оказывается сложнее, когда я переключаю больше содержимого в box3.
Вот скрипт, показывающий проблему, контейнер серый, и вы можете видеть чрезмерный серый цвет внизу под Box3 и по краю: Js fiddle здесь
Я хочу, чтобы результат был таким:
.page-wrapper {
background: #CCC;
}
.container {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto auto auto;
grid-auto-flow: row dense;
grid-template-areas: "box1" "box3" "box2"
}
@media (min-width:768px) {
.container {
align-items: start;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: minmax(0, auto) auto;
grid-template-areas: "box1 box3" "box2 box3"
}
}
.box1 {
grid-area: box1;
background-color: #f00;
}
.box2 {
grid-area: box2;
background-color: #0f0;
}
.box3 {
grid-area: box3;
height: 300px;
background-color: #00f;
height: 100%;
min-height: 100px;
}
.more {
display: block;
font-weight: bold;
margin: 20px;
cursor: pointer;
}
.stuff {
display: none;
height: 300px;
}
<div class="page-wrapper">
<div class="container">
<div class="box1">
BOX 1
</div>
<div class="box2">
BOX 2
</div>
<div class="box3">
BOX 3
<a class="more">[More info]</a>
<div class="stuff"></div>
</div>
</div>
</div>
Ответ №1:
Я полагаю, что нашел ответ на это как:
grid-template-rows: minmax(0, auto) minmax(0, 1fr);
Ответ №2:
Попробуйте изменить .box3 на следующее:
.box3{
grid-area: box3;
background-color: #00f;
min-height:300px;
height:100%;
}
Это желаемый эффект, который вы хотите?
Комментарии:
1. Спасибо, Бен. Я обновил свой поток / скрипку. Это работает, но не тогда, когда у меня есть переключатель js, который отображает больше содержимого в box3.