Разбираемся с vertical-align
Содержание:
- Равные отступы сверху и снизу
- Выравнивание блока по центру в CSS
- Вертикальное выравнивание
- Два способа абсолютного позиционирования
- Центровка с помощью table-cell
- Абсолютное позиционирование и отрицательные поля
- Значения
- Основные понятия
- vertical-align: middle
- По горизонтали или вглубь
- Разновидности слэшей и для чего они нужны
- Метод line-height
- Разновидности слешей, способы их постановки
Равные отступы сверху и снизу
В данном методе явно задаются равные отступы сверху и снизу от родительского элемента.
CSS:
#parent {
padding: 5% 0;
}
#child {
padding: 10% 0;
}
В коде CSS примера отступы сверху и снизу задаются для обоих элементов. Для вложенного элемента установка отступов будет служить для вертикального центрирования. А отступы родительского элемента будут центрировать вложенный элемент в нём.
Для динамического изменения размеров элементов используются относительные единицы измерения. А для абсолютных единиц измерения придется проделать расчеты.
Например, если родительский элемент имеет высоту 400 px, а вложенный элемент — 100px, то необходимы отступы 150px сверху и снизу.
150 + 150 + 100 = 400
Использование % позволяет расчеты оставить браузеру.
Данный метод работает везде. Обратной стороной является необходимость в расчетах.
Примечание: Данный метод работает за счет установки внешних отступов элемента. Вы можете также использовать поля внутри элемента. Решение о применении полей или отступов нужно принимать в зависимости от специфики проекта.
Выравнивание блока по центру в CSS
Так же, используя это свойство можно сделать в CSS выравнивание блока по центру. При этом данное свойство указываем для родительского блока, а для блока, который нужно выровнять задаем display:inline-block.
XHTML
<div class=»center-block»>
<div class=»centered»>
Выравнивание блока по центру в CSS
</div>
</div>
|
1 |
<div class=»center-block»> <div class=»centered»> Выравнивание блока по центру в CSS |
CSS
.center-block{
height:200px;
background:#E8E8FF;
border:1px solid #F0F0F0;
text-align:center;
}
.centered{
display:inline-block;
width:150px;
height:50px;
background:#8CC684;
border:1px solid #ccc;
margin-top:75px;
}
|
1 |
.center-block{ height200px; background#E8E8FF; border1pxsolid#F0F0F0; text-aligncenter; } .centered{ displayinline-block; width150px; height50px; background#8CC684; border1pxsolid#ccc; margin-top75px; } |
В результате получаем вот такое выравнивание:
Выравнивание блока по центру в CSS
Такого же результата для выравнивания по ширине мы могли бы добиться, используя тоже свойство margin со значение auto для блока, который нужно выровнять. В этом случае код css выглядел бы следующим образом:
PHP
.centered{
width:150px;
height:50px;
background:#8CC684;
border:1px solid #c1c1c1;
margin:auto;
}
|
1 |
.centered{ width150px; height50px; background#8CC684; border1pxsolid#c1c1c1; marginauto; } |
Обратите внимание, что данное свойство работает только для блочных элементов и при его использовании отступы сверху и снизу принимают значение 0.
Для того чтобы задать, к примеру, отступ сверху и снизу по 50px можно написать так:
margin: 50px auto;
Если нужно задать сверху одно значения для отступа, а снизу другое, то можно использовать такой вариант:
margin: 50px auto 20px auto;
В этом случае отступ сверху будет 50px, снизу – 20px, а по горизонтали блок будет выравниваться по центру.
Результат получается почти такой же:
Выравнивание блока по центру в CSS
Выровнять блок по центру получилось, но есть одно отличие. Как видите, тест в блоке теперь не выравнивается. Теперь, при необходимости сделать выравнивание текста по центру css, нужно для класса centered задать text-align:center.

Используя показанные в данной статье способы выравнивания по центру, вы сможете добиться необходимого результата практически в любой ситуации. Поэтому, я советую вам сохранить показанные мной заготовки кода где-нибудь у себя в шпаргалке. Они обязательно вам пригодятся в будущем.
А на сегодня у меня все. Желаю вам успешной работы над вашими проектами! До встречи в следующих статьях!
С уважением Юлия Гусарь
Вертикальное выравнивание
С вертикальным выравниванием намного больше проблем — по всей видимости, такое в CSS не было предусмотрено. Есть несколько способов добиться желаемого результата, но все они не очень красивые.
Выравнивание свойством line-height
В том случае, когда в блоке только одна строка, можно добиться ее выравнивания по вертикали, применив свойство «line-height» и установив ему желаемую высоту. Для надежности стоит установить еще и «height», значение которого будет равно значению «line-height», потому что последние поддерживается не во всех браузерах.
Это фиолетовая строчка, высота которой равна высоте блока.
.example-wrapper4{
line-height: 100px;
color: #DC09C0;
background: #E5DAE1;
height: 100px;
text-align: center;
}
Так же возможно добиться выравнивания блока с несколькими строками. Для этого придется использовать дополнительный блок-обертку, и устанавливать высоту строки ему. Внутренний блок может быть многострочным, но обязательно «inline». К нему нужно применить «vertical-align: middle».
А это inline-элемент. Здесь несколько оранжевыхстрочек. Они выравниваятсяза счет установленной высоты строки блока-родителя.
.example-wrapper5 {
line-height: 160px;
height: 160px;
font-size: ;
background: #FF9B00;
}
.example-wrapper5 .text1{
display: inline-block;
font-size: 14px;
line-height: 1.5;
vertical-align: middle;
background: #FFFAF2;
color: #FF9B00;
text-align: center;
}
У блока обертки должно быть установлено «font-size: 0». Если не установить нулевой размер шрифта, то браузер добавит от себя несколько лишних пикселей. Также придется указать размер шрифта и высоту строки для внутреннего блока, ведь эти свойства наследуются от родителя.
Выравнивание по вертикали в таблицах
Свойство «vertical-align» также действует на ячейки таблицы. C установленным значением «middle», контент внутри ячейки выравнивается по центру. Конечно, табличная верстка в наше время считается архаической, но в исключительных случаях можно симулировать ее, указав «display: table-cell».
Обычно для выравнивания по вертикали пользуюсь именно этим вариантом. Ниже пример верстки, взятый из готового уже проекта. Интерес представляет именно картинка, которая центрируется по вертикали данным способом.
осталось 10 шт
307грн.($14.05)
осталось 7 шт
267грн.($16.79)
.one_product .img_wrapper {
display: table-cell;
height: 169px;
vertical-align: middle;
overflow: hidden;
background: #fff;
width: 255px;
}
.one_product img {
max-height: 169px;
max-width: 100%;
min-width: 140px;
display: block;
margin: 0 auto;
}
Следует помнить, что если у элемента установлено «float» отличное от «none», то он в любом случае будет блочным (display: block) — тогда придется использовать дополнительный блок-обертку.
Выравнивание дополнительным inline-элементом
И для inline-элементов можно применить «vertical-align: middle». При этом все элементы с «display: inline», которые находятся в одной строке, выровняются относительно общей центральной линии.
Нужно создать вспомогательный блок с высотой, равной высоте родительского блока, тогда и желаемый блок выровняется по центру. Для этого удобно использовать псевдоэлементы :before или :after.
.example-wrapper6{
height: 300px;
text-align: center;
background: #70DAF1;
}
.pudge {
display: inline-block;
vertical-align: middle;
background: url(pudge.png);
background-color: #fff;
width: 200px;
height: 200px;
}
.riki {
display: inline-block;
height: 100%;
vertical-align: middle;
}
Два способа абсолютного позиционирования
Абсолютное позиционирование выдергивает элемент из общего потока, поэтому важно определить относительное позиционирование для родительского элемента, относительно которого будет происходить центрирование. CSS
CSS
.parent{
position:relative;
}
.child{
position:absolute;
}
|
1 2 3 4 5 6 7 8 |
.parent{ positionrelative; } .child{ positionabsolute; } |
Растягивание
Притянем внутренний блок одновременно к верху и низу внешнего и позволим браузеру самостоятельно рассчитать отступы:
CSS
.child{
top:0;
bottom:0;
height:100px;
margin:auto;
}
|
1 2 3 4 5 6 7 8 |
.child{ top; bottom; height100px; marginauto; } |
Отрицательный маргин
Это другая техника абсолютного позиционирования блока известных размеров. Он размещается в центре родительского блока, а затем смещается вверх на половину своей высоты.
CSS
.child{
top:50%;
height:100px;
margin-top: -50px;
}
|
1 2 3 4 5 6 7 |
.child{ top50%; height100px; margin-top-50px; } |
Вариант 4. Высоты обоих блоков неизвестны
Центровка с помощью table-cell

Используя display: table-cell, мы можем обеспечить центровку элемента как по вертикали, так и по горизонтали. Но тут нам понадобится вложить изображение ещё в один элемент div.
<div class="center-aligned"> <div class="center-core"> <img src="jimmy-choo-shoe.jpg"> </div> </div>
CSS:
.center-aligned { display: table; background: hsl(120, 100%, 97%);width: 100%; }
.center-core { display: table-cell; text-align: center; vertical-align: middle; }
.center-core img { width: 33%; height: auto; }
Чтобы всё работало корректно, div-у нужно выставить width: 100%. Для центровки элемента по вертикали, воспользуемся стандартными приёмами, выставив высоту. Работает везде, включая IE8+.
Абсолютное позиционирование и отрицательные поля
Данный метод также работает во всех браузерах. Но он требует, чтобы центрируемому элементу задавалась высота.
В коде примера выполняется одновременное центрирование по горизонтали и вертикали:
CSS:
#parent {position: relative;}
#child {
position: absolute;
top: 50%;
left: 50%;
height: 30%;
width: 50%;
margin: -15% 0 0 -25%;
}
Сначала устанавливаем тип позиционирования элементов. Затем для вложенного элемента div устанавливаем значения свойств top и left равными 50%, что соответствует центру родительского элемента. Но в центр попадает левый верхний угол вложенного элемента. Поэтому нужно поднять его вверх (на половину высоты) и сдвинуть влево (на половину ширины), и тогда центр совпадет с центром родительского элемента. Так что знание высоты элемента в данном случае необходимо. Затем задаем элементу отрицательные значения верхнего и левого полей равными половине высоты и ширины соответственно.
Данный метод работает не во всех браузерах.
Значения
Свойство устанавливает вертикальное выравнивание строчным элементам или ячейкам таблицы согласно этим типографским единицам. В зависимости от того, к какому элементу они применяются (строчному или к ячейке таблицы), значения могут иметь немного разный смысл.
Baseline (базовая линия)
Значение для строчных элементов выравнивает базовую линию текущего элемента по базовой линии родительского. В примере ниже, у квадрата следующие стили:
Базовая линия для строчных элементов
Для табличных элементов свойство выравнивает содержимое ячейки по базовой линии всех других ячеек в этой строке, выравненных по базовой линии в одном ряду. В примере ниже у всех ячеек в подсвеченной строке установлено значение .
Базовая линия для ячеек таблицы
Sub
Значение для строчных элементов выравнивает базовую линию текущего элемента по базовой линии нижнего индекса родительского элемента.
Значение для строчных элементов
Для табличных элементов это значение приводит к такому же результату, как и .
Super
Значение для строчных элементов выравнивает базовую линию текущего элемента по базовой линии верхнего индекса родительского элемента.
Значение для строчных элементов
Для табличных элементов это значение приводит к такому же результату, как и .
Text-top
Значение для строчных элементов выравнивает верхнюю границу текущего элемента по верхней линии шрифта родительского элемента.
Значение для строчных элементов
Для табличных элементов это значение приводит к такому же результату, как и .
Text-bottom
Значение для строчных элементов выравнивает нижнюю границу текущего элемента по нижней границе шрифта родительского элемента.
Значение для строчных элементов
Для табличных элементов это значение приводит к такому же результату, как и .
Middle
Значение для строчных элементов выравнивает середину текущего элемента по середине родительского элемента. Середина родительского элемента подсчитывается следующим образом: берётся высота символа x, делится пополам и добавляется к базовой линии.
Значение для строчных элементов
Для табличных элементов это значение выравнивает содержимое текущей ячейки по центру строки с учётом внутренних отступов (padding-box).
Значение для ячеек таблицы
Top
Значение для строчных элементов выравнивает верхнюю границу текущего элемента по верхней границе всей строки, на которой находится элемент. Это значение не обязательно связано со шрифтовыми элементами в строке.
Значение для строчных элементов
Для табличных элементов это значение выравнивает содержимое текущей ячейки по верхнему краю строки с учётом внутреннего отступа.
Значение для ячеек таблицы
Bottom
Значение для строчных элементов выравнивает нижнюю границу текущего элемента по нижней границе всей строки, на которой находится элемент.
Значение для строчных элементов
Для табличных элементов это значение выравнивает содержимое текущей ячейки по нижнему краю строки с учётом внутреннего отступа.
Значение для ячеек таблицы
Расстояние
Указанное значение для строчных элементов передвигает базовую линию текущего элемента на указанное расстояние относительно базовой линии родительского элемента. На примере ниже, розовый квадрат имеет следующие стили:
Смещение базовой линии с помощью указания расстояния
Для табличных элементов это значение приводит к такому же результату, как и .
Проценты
Указание значения в процентах для строчных элементов передвигает базовую линию текущего элемента относительно базовой линии родительского элемента на расстояние, равное заданному проценту от высоты строки родительского элемента. На примере ниже, розовый квадрат имеет следующие стили:
Смещение базовой линии с помощью указания процентов
Для табличных элементов это значение приводит к такому же результату, как и .
Основные понятия
Вертикальность
В русском языке понятие «вертикальность» тесно взаимосвязанно с понятием «горизонтальность».
В свою очередь, слово «горизонтальность» является производным от существительного «горизонт», которое означает условную линию, определяющую положение поверхности планеты Земля. Условной её следует воспринимать по причине округлости земной поверхности. Уровень горизонта является лишь воображаемой касательной линией к окружности планеты, проведённой в определённой точке.
Из этого вытекает понятие вертикальности. Вертикаль – любая прямая, расположенная в пространстве перпендикулярно линии горизонта.
Абсолютная вертикальность

Отвес над любой точкой земной поверхности обозначит строго вертикальную линию.
Впрочем, две такие вертикальные линии не будут параллельными между собой, а будут представлять собой два луча одного угла с вершиной в центре Земли.
Отсутствие абсолютной вертикальности может быть только за пределами планеты, то есть в космосе. Без общей горизонтальной поверхности обитания и силы тяготения к ней вертикальность как таковая перестаёт существовать. Она может быть только относительной и кратковременной, в зависимости от расположения тела человека. Линию, параллельную продольной оси человеческого тела, можно считать вертикалью, а линию перпендикулярную этой оси – горизонталью.
Если два человека, находящиеся в невесомости, будут занимать аналогичное друг к другу положение в пространстве, то лишь в этом случае любое третье тело они будут воспринимать с одинаковым определением его вертикальности.
vertical-align: middle
Свойство CSS выравнивает элемент по вертикали относительно родительского элемента, окружающего текста или ячейки таблицы. Однако с ним не все так просто. Это свойство работает только для inline-элементов (span, img и т.д) и элементов с ;
Кроме того, при помощи свойства можно выровнять по вертикали содержимое ячеек таблицы. Этим можно воспользоваться для того, чтобы выровнять блочный элемент, хакнуть систему, так сказать.
Для того, чтобы этот метод работал, как задумано, нужно задать абсолютные (в px) размеры родительского элемента. У дочернего элемента ширина и высота могут быть относительными (например, в %).
По горизонтали или вглубь
Этот путь предполагает достижение уровня экспертности без перехода на руководящие должности. Специалист развивается, приобретая всё большее мастерство и авторитет. Со временем он становится обладателем уникальных знаний и навыков и может делиться опытом, быть наставником.
Классный специалист часто зарабатывает больше, чем руководитель. Его известность в профессиональном кругу или даже в отрасли и стране наделяет его высоким социальным статусом.
Если амбиции не влекут к власти, если нет неудовлетворённости от задуманных, но нереализованных проектов, горизонтальное развитие позволяет реализоваться в полной мере.
Рост по гаризонтали вширь также требует честолюбия. Требовательный к себе человек всегда будет отслеживать границы своей компетенции и принимать профессиональные вызовы.

Разновидности слэшей и для чего они нужны
Существует несколько видов слэшей, с которыми встречается пользователь, в т.ч. геймер, при работе на компьютере, в текстовом редакторе. Кроме похожих косых линий опытный пользователь в документах может использовать вертикальный знак (пайп) – специальную черточку, которую применяют в математике, программировании.
Каждый графический знак имеет свое предназначение, особенности написания. От чего зависит применение каждого знака, мы сейчас и расскажем.
Косая черта (обычный слэш)
Черта, наклоненная вправо (дробь) – самая распространенная разновидность слэша.
Специальный символ раньше был только на клавиатуре с английской раскладкой, сейчас значок есть и в русскоязычном варианте.
Как напечатать косую черту, зависит от раскладки компьютерной клавиатуры:
- Русский вариант. «Слэш» расположен на той же кнопке, что бэкслэш, около кнопки «Enter». Чтобы поставить косую черту (палочку), надо нажать «Shift+/».
- Английский вариант. «Слэш» размещен около клавиши «Shift» с правой стороны, на кнопке, где нарисована точка. Чтобы поставить линию, наклоненную вправо, надо просто нажать на кнопку. Рядом находится и знак «\» и пайп.
Если в нужном месте вы значок слэша не найдете, можно воспользоваться функцией вставки, действуя по такой схеме:
- Откройте документ Ворд.
- Перейдите на вкладку «Вставки».
- Справа нажмите на значок «Символы».
- Появится меню, опять кликните на «Символы».
- Найдите и вставьте нужный вариант.
Еще одна разновидность слэш – дробная черта (³⁄₂). Для знака характерен наклон в 45°, боковое расположение уменьшенных цифр с двух сторон. Ворд ставит значок самостоятельно, путем автозамены.
Бэкслэш (Backslash)
Обратный слэш (\) в работе с документами на компьютере используют редко. Черту, наклоненную влево (наоборот от обычного слэша), применяют лишь в информатике или математике. Ее появление в других случаях – ошибка.
Чтобы поставить backslash в текстовом документе, надо нажать на кнопку с нарисованным значком (\). Она находится около «Enter», над правым «Shift». Не нужно переключать раскладку на английский или русский шрифт, как и использовать кнопку «Shift».
Реже встречаются другие варианты расположения косой черты, это зависит от размера, разновидности и производителя клавиатуры.
Пайп
Ровную вертикальную черту «|» (вертикальная полоска или, как называют, палка), один из символов ASCII, пользователи UNIX (linux) знают как пайп. Его код в шестнадцатеричной системе счисления (hex) – 0x7C, в десятичной (dec) – 124.
Название символа произошло от английского «pipeline», который можно перевести как «конвейер». В советские времена английский «pipe» был «символом трубопровода».
Прямой слэш находится рядом с кнопкой «Enter» (Энтер), там же где бэкслэш. Чтобы сделать вертикальную черту в Ворде, убедитесь, что на клавиатуре выставлен английский язык. Придержите «Shift» и, удерживая его зажатым, надавите на пайп «|».
Метод line-height
Данный метод работает, когда вы хотите центрировать вертикально одну строчку текста. Все что нужно сделать — это задать высоту строки больше, чем размер шрифта.
По умолчанию свободное пространство будет распределено равномерно сверху и снизу текста. И строка будет отцентрирована вертикально. Часто высоту строки делают равной высоте элемента.
CSS:
#child {
line-height: 200px;
}
Данный метод работает во всех браузерах, хотя использовать его можно только для одной строки. Значение 200 px в примере выбрано произвольно. Можно использовать любые величины больше размера шрифта текста.
Разновидности слешей, способы их постановки
Как поставить прямую или косую палочку на клавиатуре? Чтобы это понять, необходимо разобраться в разновидностях слешей, поскольку каждому из них соответствует отдельная клавиша.
Пайп
Пайп – это прямой слеш, или ровная вертикальная палочка. Раньше поставить ее на клавиатуре было довольно сложно, но на сегодняшний день это не составляет особого труда. Точно так, как и слэш в другую сторону.
Самым простым является следующий способ постановки «пайпа»:
- Переключите язык клавиатуры на английский.
- Найдите клавишу, на которой обозначен «пайп». Он выглядит как прямая вертикальная линия.
- Нажмите кнопку «шифт».
- Удерживайте «шифт» зажатым, параллельно нажимая на клавишу с изображением «пайпа».
Вот и все – необходимый символ появился в вашем текстовом редакторе. Но есть и второй способ постановки этого знака, и он не требует изменения языковой раскладки на клавиатуре. Чтобы добавить «пайп» в текст в Ворде, следуйте такому алгоритму:
- Установите курсор на том месте, где должен появиться символ.
- Надавите на «шифт» и нажмите на кнопку с изображением «пайпа».
- Отпустите обе клавиши одновременно.
На заметку. Если вы хотите быстро вставить пайп в Ворде, то можете перейти во вкладку «Вставка», после чего нажать «Символы». Отыскав нужную «черточку», просто нажмите на нее 1 раз – и она появится в вашем тексте.
Косая черта, или правый слеш
Если вы интересуетесь вопросом, как поставить дробь на клавиатуре, то вам, бесспорно, нужная косая палочка, «смотрящая» вправо. И поставить ее намного проще, чем «пайп». Так, чтобы добавить ее в текст, необходимо:
- Нажать и удерживать «шифт».
- Найти на клавиатуре косую черточку, наклоненную вправо.
- Нажать на слеш и отпустить сразу обе кнопки.
Это самый быстрый способ установки правого слеша. Если у вас это не получается, то можете воспользоваться функцией вставки символа по схеме, описанной выше. Она же будет актуальной и при условии, что вам нужно вставить обратный слэш, который вы не можете найти на клавиатуре.
Что такое бэкслеш, и как его поставить?
Backslash на клавиатуре – это косая линия, которая наклонена влево. К слову, поставить его намного проще, чем вышеперечисленные виды слешей, поскольку нажатие клавиши «Шифт» в этом случае не обязательно. Находится «обратный слеш» на одной клавише с правой косой линией. Кнопка расположена над клавишей «шифт», хотя возможны и другие варианты (все зависит от размера клавиатуры и производителя компьютера).
Как поставить обратную косую черту на клавиатуре? Если у вас проставлен русский шрифт, то вам всего лишь нужно нажать на кнопку, где нарисована нужная линия – и знак появится в вашем тексте. Если же вы нажмете ее вместе с «шифтом», то вместо обратного слеша у вас появится простой, правый.
Вот и все: теперь вы знаете, что такое слеши, какими они бывают и как их поставить. Главное – не бойтесь экспериментировать. Если вам необходимы знания о постановке слэшэй в связи с вашей работой, то для начала потренируйтесь выставлять их в черновом документе. А когда все начнет получаться, переходите к написанию «чистового» варианта документа.







