Силовой контейнер css grid для заполнения полного экрана устройства
Как заставить контейнер сетки css отображать всю ширину и высоту экрана устройства для приложения с одной страницей? Модифицированный пример из документации Mozilla: Firefox
.wrapper {
display: grid;
border-style: solid;
border-color: red;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-gap: 10px;
}
.one {
border-style: solid;
border-color: blue;
grid-column: 1 / 3;
grid-row: 1;
}
.two {
border-style: solid;
border-color: yellow;
grid-column: 2 / 4;
grid-row: 1 / 3;
}
.three {
border-style: solid;
border-color: violet;
grid-row: 2 / 5;
grid-column: 1;
}
.four {
border-style: solid;
border-color: aqua;
grid-column: 3;
grid-row: 3;
}
.five {
border-style: solid;
border-color: green;
grid-column: 2;
grid-row: 4;
}
.six {
border-style: solid;
border-color: purple;
grid-column: 3;
grid-row: 4;
}
<html>
<div class="wrapper">
<div class="one">One</div>
<div class="two">Two</div>
<div class="three">Three</div>
<div class="four">Four</div>
<div class="five">Five</div>
<div class="six">Six</div>
</div>
</html>
Ответы
Ответ 1
Если вы воспользуетесь width: 100vw;
и height: 100vh;
, объект с этими стилями будет растягиваться до полной ширины и высоты устройства.
Также обратите внимание: есть время, когда добавление и поля могут быть добавлены к вашему представлению, браузерами и т.п. Я добавил *
global no padding и margin, чтобы вы могли видеть разницу. Имейте это в виду.
*{
box-sizing: border-box;
padding: 0;
margin: 0;
}
.wrapper {
display: grid;
border-style: solid;
border-color: red;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-gap: 10px;
width: 100vw;
height: 100vh;
}
.one {
border-style: solid;
border-color: blue;
grid-column: 1 / 3;
grid-row: 1;
}
.two {
border-style: solid;
border-color: yellow;
grid-column: 2 / 4;
grid-row: 1 / 3;
}
.three {
border-style: solid;
border-color: violet;
grid-row: 2 / 5;
grid-column: 1;
}
.four {
border-style: solid;
border-color: aqua;
grid-column: 3;
grid-row: 3;
}
.five {
border-style: solid;
border-color: green;
grid-column: 2;
grid-row: 4;
}
.six {
border-style: solid;
border-color: purple;
grid-column: 3;
grid-row: 4;
}
<html>
<div class="wrapper">
<div class="one">One</div>
<div class="two">Two</div>
<div class="three">Three</div>
<div class="four">Four</div>
<div class="five">Five</div>
<div class="six">Six</div>
</div>
</html>
Ответ 2
Два важных свойства CSS, которые нужно установить для страниц полной высоты:
-
Позвольте телу расти так высоко, как того требует его содержание.
html { height: 100%; }
-
Заставьте тело не становиться меньше, чем высота окна.
body { min-height: 100%; }
То, что вы делаете со своей птицей, не имеет значения, если вы используете дроби или проценты, вы должны быть в безопасности во всех случаях.
Посмотрите на этот общий макет панели.
Ответ 3
Вы можете добавить position: fixed;
с атрибутом top left right bottom 0
, это решение работает и с более старыми браузерами.
Если вы хотите вставить его, добавьте position: absolute;
к обертке и position: relative
div вне обертки.
.wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: grid;
border-style: solid;
border-color: red;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-gap: 10px;
}
.one {
border-style: solid;
border-color: blue;
grid-column: 1 / 3;
grid-row: 1;
}
.two {
border-style: solid;
border-color: yellow;
grid-column: 2 / 4;
grid-row: 1 / 3;
}
.three {
border-style: solid;
border-color: violet;
grid-row: 2 / 5;
grid-column: 1;
}
.four {
border-style: solid;
border-color: aqua;
grid-column: 3;
grid-row: 3;
}
.five {
border-style: solid;
border-color: green;
grid-column: 2;
grid-row: 4;
}
.six {
border-style: solid;
border-color: purple;
grid-column: 3;
grid-row: 4;
}
<html>
<div class="wrapper">
<div class="one">One</div>
<div class="two">Two</div>
<div class="three">Three</div>
<div class="four">Four</div>
<div class="five">Five</div>
<div class="six">Six</div>
</div>
</html>
Ответ 4
Решение, которое я недавно нашел, состоит в том, чтобы использовать ширину 100vh и высоту 100vh для элемента body с сеткой из 9 ячеек вместо поля, центра для содержимого и остальных полей. Вы можете использовать переменную --global-margin, чтобы сделать ее более читаемой.
Ответ 5
Если вы хотите, чтобы .wrapper
был полноэкранным, просто добавьте следующее в класс обертки:
position: absolute; width: 100%; height: 100%;
Вы также можете добавить top: 0
и left:0