CSS -макет — горизонтальное и вертикальное выравнивание
Центрировать элементы
по горизонтали и вертикали
Выровнять элементы по центру
Чтобы центрировать блочный элемент по горизонтали (например, <div>), используйте margin: auto;
Установка ширины элемента предотвратит его растяжение до краев контейнера.
Затем элемент займет указанную ширину, а оставшееся пространство будет поровну разделено между двумя полями:
Этот элемент div центрирован.
Пример
.center
{
margin: auto;
width: 50%;
border: 3px solid green;
padding: 10px;
}
Примечание. Выравнивание по центру не действует, если width
свойство не установлено (или установлено на 100%).
Выровнять текст по центру
Чтобы просто центрировать текст внутри элемента, используйте text-align: center;
Этот текст расположен по центру.
Пример
.center {
text-align: center;
border: 3px solid green;
}
Совет. Дополнительные примеры выравнивания текста см. в главе « Текст CSS ».
Центрировать изображение
Чтобы центрировать изображение, установите левое и правое поле auto
и сделайте его block
элементом:
Пример
img
{
display: block;
margin-left: auto;
margin-right: auto;
width: 40%;
}
Выравнивание по левому и правому краю — использование положения
Одним из способов выравнивания элементов является использование position: absolute;
:
Когда я был моложе и уязвимее, мой отец дал мне несколько советов, которые я с тех пор постоянно обдумываю.
Пример
.right
{
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
Примечание. Элементы с абсолютным позиционированием удаляются из обычного потока и могут перекрывать элементы.
Выравнивание по левому и правому краю — использование float
Другой способ выравнивания элементов — использовать float
свойство:
Пример
.right
{
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
Взлом Clearfix
Примечание. Если элемент выше, чем элемент, содержащий его, и он плавающий, он переполнится за пределы своего контейнера. Вы можете использовать «clearfix hack», чтобы исправить это (см. пример ниже).
Без Клирфикс
С Клирфикс
Затем мы можем добавить хак clearfix к содержащему элементу, чтобы решить эту проблему:
Пример
.clearfix::after {
content: "";
clear: both;
display: table;
}
Центрировать по вертикали — использование отступов
There are many ways to center an element vertically in CSS. A simple solution is to use top and bottom padding
:
I am vertically centered.
Example
.center {
padding: 70px 0;
border: 3px solid
green;
}
To center both vertically and horizontally, use padding
and text-align: center
:
I am vertically and horizontally centered.
Example
.center {
padding: 70px 0;
border: 3px solid
green;
text-align: center;
}
Center Vertically - Using line-height
Another trick is to use the line-height
property with a value that is equal
to the height
property:
I am vertically and horizontally centered.
Example
.center {
line-height: 200px;
height: 200px;
border: 3px solid green;
text-align: center;
}
/* If the text has multiple lines, add the
following: */
.center p {
line-height: 1.5;
display: inline-block;
vertical-align: middle;
}
Center Vertically - Using position & transform
If padding
and line-height
are not options, another solution is to use positioning and the transform
property:
I am vertically and horizontally centered.
Example
.center {
height: 200px;
position: relative;
border: 3px solid green;
}
.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
Tip: You will learn more about the transform property in our 2D Transforms Chapter.
Center Vertically - Using Flexbox
You can also use flexbox to center things. Just note that flexbox is not supported in IE10 and earlier versions:
Example
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid
green;
}
Tip: You will learn more about Flexbox in our CSS Flexbox Chapter.