Все про CSS выравнивание. Способы вертикального выравнивания по центру в CSS
До сих пор мы с Вами выравнивали элементы только по левому краю. Точнее, мы с Вами вообще этим не занимались, а сам браузер по умолчанию выравнивает элементы по левому краю. Разумеется, было бы слишком скучно выравнивать всё по левому краю. Поэтому существуют различные способы выравнивания по центру и по правому краю.
Выравнивание элементов - это , которые просто необходимо знать при . Первое, что необходимо сделать - это набрать простейшей страницы.
Ещё когда-то давно появился тег
Можно добавить картинку, выравненную также по центру, также давайте перейдём на следующую строку с помощью тега
:
Заголовок 1-го уровня, выравненный по центру
Это был тег
Чтобы решить эту проблему разработчики придумали универсальный способ выравнивания элементов HTML
. Способ заключается в использовании так называемых контейнеров, которые создаются с помощью тега Давайте сейчас напишем тот же HTML-код
, но с использованием контейнеров, вдобавок, давайте выравняем не по центру, а по правому краю. Как видите, всё работает. Советую Вам также поменять значения атрибута "align
", чтобы посмотреть на другие виды выравнивания содержимого контейнеров. Другой способ выравнивания элементов HTML
- это таблицы, но эта тема заслуживает отдельного разговора, поэтому поговорим о ней в одной из следующих статей. А пока Ваша страница должна выглядеть так: С уважением, Михаил Русаков. P.S.
Если Вы хотите узнать больше по HTML
, то посмотрите мой бесплатный курс с примером создания сайта на HTML
: Сегодня, уважаемый читатель, мы с вами разберемся с проблемой вертикального выравнивания в блоке div
. Скорее всего вы уже знаете о существовании замечательного свойства CSS vertical-align.
И сам Бог велел нам пользоваться для вертикального выравнивания именно этим свойством (не зря же оно носит такое, говорящее само за себя, название). Постановка задачи:
Необходимо выровнять содержимое блока переменной высоты по центру относительно вертикали. Теперь приступим к решению поставленной задачи. И так, у нас есть блок, высота его может меняться: Первое, что приходит в голову – это сделать следующий финт: Есть все основания предполагать, что фраза Содержимое блока
выровняется по центру высоты div-контейнера. Но не тут-то было! Никакого ожидаемого выравнивания по центру таким образом мы не добьемся. А почему? Казалось бы все указано правильно. Оказывается вот в чем загвоздка: свойство vertical-align
можно применять только для выравнивания содержимого ячеек таблиц или для выравнивания строчных элементов друг относительно друга. По поводу выравнивания внутри ячейки таблицы, я думаю, все понятно. А вот другой случай со строчными элементами я поясню. Предположим есть у вас строка текст, которая разбита строчными тегами
на части:
Вас приветствует кусок текста!
Под строчным тегом понимается контейнер, появление которого не приводит к переносу содержимого на новую строку. Действие же блочного тега приводит к переносу содержимого контейнера на новую строку. Контейнер
удобно использовать при задании части текста особого форматирования (выделение цветом, другим шрифтом и т.д.) Для контейнеров
применим следующие свойства CSS:
#perviy{
vertical-align:sub;
}
#vtoroy{
vertical-align:3px;
}
#tretiy{
vertical-align:-3px;
}
В результате строка текста будет иметь вот такой вид: Это и есть ничто иное, как выравнивание строчных элементов по вертикали, и свойство CSS vertical-align
с этой задачей прекрасно справляется. Мы немного отвлеклись, теперь возвращаемся к нашей основной задаче. Не смотря ни на что, для выравнивания внутри div-контейнера мы будем использовать свойство vertical-align
. Как я уже говорил, данное свойство можно использовать в случае выравнивания строчных элементов (этот случай мы подробно рассмотрели выше и для выравнивания в div-контейнере он нам не подходит); остается лишь использовать тот факт, что vertical-align
работает для ячеек таблицы. Как же мы сможем это использовать? У нас же нет таблицы, мы работаем с div-контейнером. Ха, оказывается очень просто. CSS-свойство display
позволяет превратить наш блок div в ячейку таблицы, сделать это можно легко и непринужденно: Пусть у нас есть div класса textalign:
Для данного блока указываем следующее CSS-свойство: Textalign{
display: table-cell;
}
Эта CSS-инструкция чудесным образом превратит наш блок div в ячейку таблицы, визуально никак его не изменив. А для ячейки таблицы мы сможем применять свойство vertical-align
в полной мере и будет работать желаемая центровка по вертикали. Однако, все так просто закончится не может. У нас же есть замечательный браузер IE. Он не умеет работать со свойством display: table-cell
(предлагаю вам ознакомится с табличкой, иллюстрирующей работоспособность данного CSS-свойства в разных браузерах на сайте htmlbook.ru). Поэтому нам придется идти на различные ухищрения. Существует множество способов добиться выравнивания в div-контейнере для всех браузеров: Как вы понимаете, нам остается решить проблему вертикального выравнивания в IE, связанную с его непониманием свойства display: table-cell
(ни IE6, ни IE7, ни IE8
с этим свойством не знакомы). Поэтому воспользовавшись условным комментарием
специально для браузеров семейства IE мы укажем другие свойства CSS. Конструкция вида:
...
Инструкции, действующие только в случае выполнения условия в квадратных скобках...
называется условным комментарием (будьте внимательны, вид условного комментария должен полностью соответствовать приведенному примеру, с точностью до пробела). Инструкции, содержащиеся в подобном условном комментарии будут выполнены только в случае, если браузер, интерпретирующий данный код, принадлежит к семейству IE. Таким образом, используя условный комментарий, мы сможем спрятать кусок кода от всех браузеров кроме IE. Из-за всей этой петрушки нам нужно будет снабдить наш HTML-код двумя дополнительными контейнерами. Вот каким образом будет выглядеть наш блок с текстом:
Для div-контейнера класса textalign
задаются CSS-свойства, которые выравнивают его содержимое по вертикали для всех нормальных браузеров (кроме IE, разумеется): Display: table-cell;
vertical-align: middle;
И еще два свойства, которые задают ширину и высоту для блока: Width:500px;
height: 500px;
Этого вполне достаточно для выравнивания содержимого контейнера по центру относительно вертикали, во всех браузерах кроме IE
. Теперь начинаем дописывать свойства, связанные с выравниванием для браузеров семейства IE
(именно для них мы использовали дополнительные блоки div
и span
): Обращаемся к тегу div
внутри блока класса textalign
. Для этого нужно указать сначала название класса, а потом, через пробел, тег, к которому мы обращаемся. Textalign div{
position: absolute;
top: 50%;
}
Такая конструкция означает: для всех тегов div внутри блока с классом textalign
применить перечисленные свойства. Соответственно, стили заданные для блока textalign
видоизменяются: Textalign{
display: table-cell;
vertical-align: middle;
width:500px;
height: 500px;
position: relative;
}
Теперь левая верхняя точка текстового блока смещена вниз на 50%. Для пояснения происходящего я нарисовал иллюстрацию: Как видно из картинки, определенного прогресса мы добились. Но это еще не все! Верхняя левая точка желтого блока действительно сместилась на 50% вниз, относительно родительского (фиолетового) блока. Но нам-то нужно, чтобы на пятидесяти процентах высоты фиолетового блока находился центр желтого блока
, а не его верхняя левая точка. Теперь в ход пойдет тег span
и его относительное позиционирование: Textalign span{
position: relative;
top: -50%;
}
Тем самым, мы сместили желтый блок вверх на 50% его высоты, относительно начального положения. Как вы понимаете, высота желтого блока равна высоте центрируемого контента. И последняя операция со span-контейнером расположила наш контент посередине фиолетового блока. Ура! Перво-на-перво нам нужно спрятать петрушку от всех нормальных браузеров и открыть ее для IE. Сделать это можно, конечно же, при помощи условного комментария, не зря мы с ним знакомились:
Есть небольшая проблемка.
Если центруемый контент слишком высокий, то это приводит к неприятным последствиям: появляется лишняя высота вертикальной прокрутки. Решение проблемы:
нужно добавить свойство overflow: hidden
блоку textalign.
Детально познакомиться со свойством overflow
можно в . Окончательный вид CSS-инструкций для блока textalign
имеет вид: Textalign{
display: table-cell;
vertical-align: middle;
width:500px;
height: 500px;
position: relative;
overflow: hidden;
border: 1px solid black;
}
Прошу пардону, забыл упомянуть один важный момент. Если вы будите пытаться задавать высоту блока класса textalign
в процентном соотношении
, то у вас ничего не выйдет
. Очень часто встречается необходимость задать высоту блока класса textalign
не в пикселах, а в процентах от высоты родительского блока, и выровнять содержимое div-контейнера по середине. Загвоздка в том, что для ячейки таблицы невозможно этого сделать (а ведь блок класса textalign
превращается именно в ячейку таблицы, благодаря свойству display:table-cell
). В этом случае необходимо использовать внешний блок, для которого указано CSS-свойство display:table
и уже для него задавать процентное значение высоты. Тогда вложенный в него блок, с CSS-директивой display:table-cell
, благополучно унаследует высоту родительского блока. Для того, чтобы в нашем примере реализовать блок переменной высоты, мы немного подредактируем CSS: Классу textalign
мы изменим значение свойства display
с table-cell
на table
и убирем директиву выравнивания vertical-align: middle
. Теперь мы смело можем изменить значение высоты с 500 пикселов на, например, 100%. Таким образом, CSS-свойства для блока класса textalign
будут иметь следующий вид: Textalign{
display: table;
width:500px;
height: 100%;
position: relative;
overflow: hidden;
border: 1px solid black;
}
Остается реализовать центрирование содержимого. Для этого div-контейнеру, вложенному в блок класса textalign
(это тот самый желтый блок на рисунке), необходимо задать CSS-свойство display:table-cell
, тогда он унаследует высоту в 100% от родительского блока textalign
(фиолетовый блок). И нам ничто не помешает выровнять содержимое вложенного div-контейнера по центру свойством vertical-align: middle
. Получаем еще один дополнительный список CSS-свойств для блока div, вложенного в контейнер textalign
. Textalign div{
display: table-cell;
vertical-align: middle;
}
Вот и вся хитрость. При желании, вы можете переменной высоты с отцентрованным содержимым. Дополнительную информацию по вертикальному выравниванию блока переменной высоты можно получить . Очень часто стоит задача выровнять блок по центру страницы / экрана, да ещё и так, чтобы без ява-скрипта, без задания жёстких размеров или отрицательных отступов, ещё чтобы и скроллбары работали у родителя, если блок превышает его размеры. В сети ходят достаточно много однообразных примеров как выровнять блок по центру экрана. Как правило большинство из них основаны на одних принципах. Parent {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
overflow: auto;
}
.block {
width: 250px;
height: 250px;
position: absolute;
top: 50%;
left: 50%;
margin: -125px 0 0 -125px;
img {
max-width: 100%;
height: auto;
display: block;
margin: 0 auto;
border: none;
}
}
Parent {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
overflow: auto;
}
.block {
width: 250px;
height: 250px;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
img {
max-width: 100%;
height: auto;
display: block;
margin: 0 auto;
border: none;
}
}
Parent {
width: 100%;
height: 100%;
display: table;
position: absolute;
top: 0;
left: 0;
> .inner {
display: table-cell;
text-align: center;
vertical-align: middle;
}
}
.block {
display: inline-block;
img {
display: block;
border: none;
}
}
Чтобы добавить скролл в данный пример, придётся добавить в конструкцию ещё один элемент. Parent {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
overflow: auto;
white-space: nowrap;
text-align: center;
font-size: 0;
&:before {
height: 100%;
display: inline-block;
vertical-align: middle;
content: "";
}
}
.block {
display: inline-block;
white-space: normal;
vertical-align: middle;
text-align: left;
img {
display: block;
border: none;
}
}
Либо, если вам нужно, чтобы родитель занимал только высоту и ширину окна, а не всей страницы: Parent {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
white-space: nowrap;
text-align: center;
font-size: 0;
&:before {
height: 100%;
display: inline-block;
vertical-align: middle;
content: "";
}
}
.block {
display: inline-block;
white-space: normal;
vertical-align: middle;
text-align: left;
img {
display: block;
border: none;
}
}
Parent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
display: flex;
align-items: center;
align-content: center;
justify-content: center;
overflow: auto;
}
.block {
background: #60a839;
img {
display: block;
border: none;
}
}
Parent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: auto;
}
.block {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
img {
display: block;
}
}
Parent {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
overflow: auto;
background: none;
border: none;
outline: none;
}
.block {
display: inline-block;
img {
display: block;;
border: none;
}
}
Так же можно выравнивать картинку по центру, и в случае если картинка больше родителя
, масштабировать её по размеру родителя
. Я думаю, многие из вас, кому приходилось заниматься версткой, сталкивались с необходимостью выравнивать элементы по вертикали и знают, какие сложности возникают при выравнивании элемента по центру. Да, для вертикального выравнивания в CSS есть специальное свойство vertical-align с множеством значений . Однако на практике оно работает совсем не так, как ожидается. Давайте попробуем в этом разобраться. Есть два элемента div , при этом один из них вложен в другой. Дадим им соответствующие классы − outer и inner . Для начала рассмотрим случай, когда размеры внешнего и внутреннего блока известны
. Добавим внутреннему элементу правило display: inline-block , а внешнему − text-align: center и vertical-align: middle . Нпомню, что выравнивание применяется только к элементам, которые имеют режим отображения inline или inline-block . Зададим блокам размеры, а также фоновые цвета, чтобы видеть их границы. Outer {
width: 200px;
height: 200px;
text-align: center;
vertical-align: middle;
background-color: #ffc;
}
.inner {
display: inline-block;
width: 100px;
height: 100px;
background-color: #fcc;
}
Почему так произошло?
Дело в том, что свойство vertical-align влияет на выравнивание самого элемента, а не его содержимого
(кроме случаев, когда оно применяется к ячейкам таблицы). Поэтому применение данного свойства к внешнему элементу ничего не дало. Более того, применение этого свойства к внутреннему элементу также ничего не даст, поскольку строчные блоки (inline-block) выравниваются по вертикали относительно соседних блоков, а в нашем случае у нас один строчный блок. Для решения данной проблемы существует несколько техник. Ниже подробнее рассмотрим каждую из них. Очевидный минус данного решения – с точки зрения семантики неправильно применять таблицы для выравнивания. Второй минус в том, что для создания таблицы требуется добавить еще один элемент вокруг внешнего блока. Первый минус можно частично убрать, заменив теги table и td на div и задав табличный режим отображения в CSS. Outer {
height: 200px;
}
.inner {
height: 100px;
margin: 50px 0;
}
Минус решения - оно применимо лишь в ограниченном числе случаев, когда известны высоты обоих блоков. Outer {
height: 200px;
line-height: 200px;
}
.inner {
white-space: nowrap;
overflow: hidden;
}
Также данную технику можно применять и для выравнивания многострочного текста, если для внутреннего блока переопределить значение line-height , а также добавить правила display: inline-block и vertical-align: middle . Outer {
height: 200px;
line-height: 200px;
}
.inner {
line-height: normal;
display: inline-block;
vertical-align: middle;
}
Минус данного способа заключается в том, что должна быть известна высота внешнего блока. Для этого нужно: Суть этой техники заключается в том, что задание высоты для растянутого и абсолютно спозиционированного блока заставляет браузер вычислять вертикальные отступы в равном соотношении, если их значение установлено в auto . Нужно задать внешнему блоку относительное позиционирование, а внутреннему − абсолютное. Затем необходимо сдвинуть внутренний блок вниз на половину высоты внешнего блока top: 50% и поднять вверх на половину собственной высоты margin-top: -H inner / 2. Outer {
position: relative;
}
.inner {
height: 100px;
position: absolute;
top: 50%;
margin-top: -50px;
}
Минус данного способа - должна быть известна высота внутреннего блока. Outer {
position: relative;
}
.inner {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Почему в предыдущем способе нельзя было задать значение в процентах? Так как процентные значения свойства margin вычисляются относительно родительского элемента, значение в 50% равнялось бы половине высоты внешнего блока, а нам нужно было поднять внутренний блок на половину его собственной высоты. Для этого как раз подходит свойство transform . Минус данного способа - он не может быть применен, если внутренний блок имеет абсолютное позиционирование. Внешнему блоку необходимо задать display: flex , а внутреннему − margin: auto . И это все! Красиво, правда? Outer {
display: flex;
width: 200px;
height: 200px;
}
.inner {
width: 100px;
margin: auto;
}
Минус данного способа − Flexbox поддерживается только современными браузерами. Теги:
Добавить метки Выравнивание элементов по горизонтали и вертикали можно сделать различными способами. Выбор способа зависит от типа элемента (блочный или строчный), от типа его позиционирования, размеров и т.д. Если нужно выровнять строчный элемент таким способом, ему нужно задать display: block; если для элемента заданы размеры
если для элемента не заданы размеры и он не пустой
Заголовок 1-го уровня, выравненный по центру
Заголовок 1-го уровня, выравненный по правому краю
Вертикальное выравнивание строчных элементов
Выравнивание по вертикали в div-контейнере
Условный комментарий
Решение задачи
Он состоит из двух строк.
Немного подшаманим
Центровка в блоке переменной высоты
Ниже представлены основные способы решения задачи, их плюсы и минусы. Чтобы понимать суть примеров, рекомендую уменьшить высоту / ширину окошка Result в примерах по указанным ссылкам.Вариант 1. Отрицательный отступ.
Позиционируем блок
атрибутами top и left на 50%, и заранее зная высоту и ширину блока, задаём отрицательный margin, который равен половине размера блока
. Огромным минусом данного варианта является то, что нужно подсчитывать отрицательные отступы. Так же блок
не совсем корректно ведёт себя в окружении скроллбаров - он попросту обрезается так как имеет отрицательные отступы. Вариант 2. Автоматический отступ.
Менее распространённый, но схожий с первым. Для блока
задаём ширину и высоту, позиционируем атрибутами top right bottom left на 0, и задаём margin auto. Плюсом данного варианта являются рабочие скроллбары у родителя
, если у последнего задана 100% ширина и высота. Минусом данного способ является жёсткое задание размеров.Вариант 3. Таблица.
Задаём родителю
табличные стили, ячейке родителя
устанавливаем выравнивание текста по центру. А блоку
задаём модель строчного блока. Минусами мы получаем не рабочие скроллбары, и в целом не эстетичность «эмуляции» таблицы.
Пример: jsfiddle.net/serdidg/fk5nqh52/3 .Вариант 4. Псевдо-элемент.
Данный вариант лишён всех проблем, перечисленных у предыдущих способов, а так же решает первоначально поставленные задачи. Суть состоит в том, чтобы у родителя
задать стили псевдо-элементу
before, а именно 100% высоту, выравнивание по центру и модель строчного блока. Так же само и у блока
ставится модель строчного блока, выравнивание по центру. Чтобы блок
не «падал» под псевдо-элемент
, когда размеры первого больше чем родителя
, указываем родителю
white-space: nowrap и font-size: 0, после чего у блока
отменяем эти стили следующими - white-space: normal. В данном примере font-size: 0 нужен для того, чтобы убрать образовавшийся пробел между родителем
и блоком
в связи с форматированием кода. Пробел можно убрать и иными способами, но лучшим считается просто его не допускать.Вариант 5. Flexbox.
Одним из самых простых и элегантных способов является использования flexbox. Он не требует лишних телодвижений, достаточно понятно описывает суть происходящего, обладает высокой гибкостью. Единственное, что стоит помнить при выборе данного способа - поддержка IE от 10-й версии включительно. caniuse.com/#feat=flexbox Вариант 6. Transform.
Подходит в случае если мы ограничены структурой, и нет возможности манипулировать родительским элементом, а блок выровнять как-то нужно. На помощь придёт css функция translate() . При значение 50% абсолютное позиционирование расположит верхний левый угол блока точно по центру, затем отрицательное значение translate сдвинет блок относительно своих собственных размеров. Учтите, что могут всплыть негативные эффекты в виде размытых граней или начертания шрифта. Также подобный способ может привести к проблемах с вычислением положения блока с помощью java-script"а. Иногда для компенсации потери 50% ширины из-за использования css свойства left может помочь заданное у блока правило: margin-right: -50%; .Вариант 7. Кнопка.
Пользователь вариант, где блок
обрамляется в тег button. Кнопка имеет свойство центрировать всё, что находится у неё внутри, а именно элементы строчной и блочно-строчной (inline-block) модели. На практике использовать не рекомендую.Бонус
Используя идею 4-го варианта, можно задавать внешние отступы для блока
, и при этом последний будет адекватно отображаться в окружении скроллбаров.
Пример: jsfiddle.net/serdidg/nfqg9rza/2 .
Пример: jsfiddle.net/serdidg/nfqg9rza/3 .
Пример c большой картинкой:
Сравним следующие подходы. Выравнивание с помощью:
В качестве иллюстрации рассмотрим следующий пример.
Задача состоит в том, чтобы выровнять внутренний элемент по центру внешнего элемента.
После применения стилей мы увидим, что внутренний блок выровнялся по горизонтали, а по вертикали нет:
http://jsfiddle.net/c1bgfffq/ Выравнивание с помощью таблицы
Первое приходящее на ум решение − заменить внешний блок таблицей из одной ячейки. В этом случае выравнивание будет применяться к содержимому ячейки, то есть к внутреннему блоку.
http://jsfiddle.net/c1bgfffq/1/
.outer-wrapper {
display: table;
}
.outer {
display: table-cell;
}
Тем не менее внешний блок все равно останется таблицей со всеми вытекающими из этого последствиями.Выравнивание с помощью отступов
Если высоты внутреннего и внешнего блока известны, то выравнивание можно задать с помощью вертикальных отступов у внутреннего блока, используя формулу: (H outer – H inner) / 2.
http://jsfiddle.net/c1bgfffq/6/ Выравнивание с помощью line-height
Если известно, что внутренний блок должен занимать не более одной строки текста, то можно воспользоваться свойством line-height и задать его равным высоте внешнего блока. Поскольку контент внутреннего блока не должен переноситься на вторую строку, рекомендуется также добавить правила white-space: nowrap и overflow: hidden .
http://jsfiddle.net/c1bgfffq/12/
http://jsfiddle.net/c1bgfffq/15/ Выравнивание с помощью "растягивания"
Данный способ можно применять, когда высота внешнего блока неизвестна, но известна высота внутреннего.
.outer {
position: relative;
}
.inner {
height: 100px;
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
}
http://jsfiddle.net/c1bgfffq/4/ Выравнивание с помощью отрицательного margin-top
Этот способ получил широкую известность и применяется очень часто. Как и предыдущий, он применяется, когда высота внешнего блока неизвестна, но известна высота внутреннего.
http://jsfiddle.net/c1bgfffq/13/ Выравнивание с помощью transform
Данный способ похож на предыдущий, но он может быть применен, когда высота внутреннего блока неизвестна. В этом случае вместо задания отрицательного отступа в пикселях можно воспользоваться свойством transform и поднять внутренний блок вверх с помощью функции translateY и значения -50% .
http://jsfiddle.net/c1bgfffq/9/ Выравнивание с помощью Flexbox
Самый современный способ вертикального выравнивания это использовать Flexible Box Layout (в народе известен как Flexbox). Данный модуль позволяет гибко управлять позиционированием элементов на странице, располагая их практически как угодно. Выравнивание по центру для Flexbox − очень простая задача.
http://jsfiddle.net/c1bgfffq/14/ Какой способ выбрать?
Нужно исходить из постановки задачи: 1. Горизонтальное выравнивание по центру блока/страницы
1.1. Если для блока задана ширина:
div {
width: 300px;
margin: 0 auto; /*центрируем элемент по горизонтали в пределах родительского блока*/
}
1.2. Если блок вложен в другой блок и для него не задана/задана ширина:
1.3. Если для блока задана ширина и его нужно зафиксировать по центру родительского блока:
1.4. Если для блоков не задана ширина, можно центрировать с помощью родительского блока-обертки:
2. Вертикальное выравнивание
2.1. Если текст занимает одну строчку, например, для кнопок и пунктов меню:
.button {
height: 50px;
line-height: 50px;
}
2.2. Для выравнивания блока по вертикали внутри родительского блока:
2.3. Вертикальное выравнивание по типу таблицы:
2.4. Если для блока задана ширина и высота, и его нужно выровнять по центру родительского блока:
2.5. Абсолютное позиционирование по центру страницы/блока с помощью CSS3-трансформации:
Some text here
Рекомендуем также