Этого можно добиться с помощью системы flexbox или grid .
- Flexbox . Все, что вам нужно сделать, это настроить отображение элемента упаковки на гибкость, а затем выполнить горизонтальное выравнивание элемента с помощью
justify-content
и вертикальное выравнивание с помощью align-items
.
nav>ul {
display: flex;
justify-content: flex-start;
align-items: center;
}
nav>ul>li {
margin: 0 10px;
}
.row {
display: flex;
align-items: center;
}
.row>.column {
margin: 0 5px;
padding: 5px;
}
.bottom-row {
display: flex;
justify-content: center;
}
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Book summary</a></li>
<li><a href="#">About us</a></li>
<li><a href="#">Contact us</a></li>
<li><a href="#">Purchase</a></li>
</ul>
</nav>
<div class="row">
<div class="column" style="background-color:none;">
<h2>bla bla bla</h2>
<p>
<img src="https://i.imgur.com/ZdhtRrp.png" alt="bookshelf">
</p>
</div>
<div class="column" style="background-color:none;">this is another column</div>
</div>
<div class="bottom-row">bottom row</div>
Сетка . сетка будет примерно такой. Чтобы добиться этого с помощью сетки, вы должны заранее определить макет страницы с помощью
grid-template-areas
, а затем указать каждый элемент, который будет располагаться на своем месте.
body {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto 1fr auto;
grid-template-areas: "nav nav" "column1 column2" "bottom-row bottom-row";
width: 100%;
height: 100%;
margin: 0;
}
nav {
grid-area: nav;
align-self: center;
}
.column1 {
grid-area: column1;
}
.column2 {
grid-area: column2;
align-self: center;
}
.bottom-row {
grid-area: bottom-row;
justify-self: center;
}
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Book summary</a></li>
<li><a href="#">About us</a></li>
<li><a href="#">Contact us</a></li>
<li><a href="#">Purchase</a></li>
</ul>
</nav>
<div class="column1" style="background-color:none;">
<h2>bla bla bla</h2>
<p>
<img src="https://i.imgur.com/ZdhtRrp.png" alt="bookshelf">
</p>
</div>
<div class="column2" style="background-color:none;">this is another column</div>
<div class="bottom-row">bottom row</div>
Дополнительные примечания по системе сеток
Для начала вам необходимо определить элемент контейнера как сетку с display: grid
задайте размеры столбца и строки с помощью grid-template-columns
и grid-template-rows
, а затем поместите его дочерние элементы в сетку с помощью grid-column
и grid-row
.
display: grid
. Определяет элемент как контейнер сетки и устанавливает новый контекст форматирования сетки для его содержимого.
grid-template-rows
или grid-template-columns
. Определяет столбцы и строки сетки со списком значений, разделенных пробелами. Значения представляют размер дорожки, а пространство между ними представляет линию сетки.
grid-column
или grid-row
. Сокращение для grid-column-start
+ grid-column-end
и grid-row-start
+ grid-row-end
соответственно.