Я пытаюсь понять, как правильно делать подобные вещи в Grid. Поскольку я не уверен, правильно ли я это делаю.
Как подсказывает вопрос, в первую очередь это касается границ вокруг элементов сетки без дополнительного контейнера. Тем не менее, если вы здесь, после прочтения названия вопроса, вы можете внести свой вклад или улучшить
любым возможным способом.
Идея | Проблема
Прямой пример того, как все должно выглядеть после решения проблемы
Мне нужно сделать один столбец Сетка макет с элементами:
Это должно быть в центре браузера.
Тогда должна быть одна граница вокруг всех этих трех элементов.
Кроме того, макет должен иметь возможность расширяться на высоту при добавлении большего количества элементов в элемент <main>
.
Ограничения:
- Без создания дополнительного контейнера.
- Без использования рамок Свойства отдельных сторон
- границы сверху
- бордюр правый
- граница дна
- границы слева
Что я сделал и попробовал до сих пор:
- Настройка
html, body {height: 100%;}
- Сделано
<html>
Элемент Сетка.
- Сделано
<body>
Элемент Сетка.
- Расположенный элемент Grid внутри Grid, , то есть один столбец с одной строкой
place-self: auto center;
justify-self: center;
- Сделал рамку вокруг элемента
<body>
.
html, body {height: 100%;}
html {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 1fr;
}
body {
border: solid 5px black;
width: 50%;
display: grid;
grid-template-rows: 50px auto 50px;
grid-template-columns: 1fr;
place-self: auto center;
justify-self: center;
}
header { background-color: #0000b7;}
main { background-color: blue;}
footer { background-color:lightblue;}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Home Page</title>
<style>
</style>
</head>
<body>
<header></header>
<main>
</main>
<footer></footer>
</body>
</html>