CSS vertical-align — вирівнювання рядкових елементів по вертикалі
Властивість vertical-align задає вертикальне вирівнювання для рядкового елемента або елементу таблиці.

Властивість може бути використана у двох випадках:
для вертикального вирівнювання рядкового елементу, який міститься в іншому рядковому елементі. Наприклад,
vertical-alignможе бути використаний для вирівнювання картинки(<img>), яка розміщена у рядку.для вирівнювання по вертикалі в комірках таблиці:

baseline- вирівнює базову лінію комірки з базовою лінією першого текстового рядка або іншого вкладеного елемента.bottom- вирівнює по нижньому краю комірки.middle- вирівнює по середині комірки.top- вирівнює вміст комірки по його верхньому краю.
Як значення також можна використовувати відсотки, пікселі або інші доступні одиниці. Позитивне значення зміщує елемент вгору щодо базової лінії, в той час як негативне значення опускає його вниз. При використанні відсотків, відлік ведеться від значення властивості line-height, при цьому 0% аналогічно значенню baseline.
Загальний опис
автор: NagarD
- Нотатка
-
Допустимі до використання негативні значення. Зверніть увагу, що властивість
автор: Svitlanavertical-alignне впливає на блокові елементи!
Синтаксис
vertical-align: baseline|length|sub|super|top|text-top|middle|bottom|text-bottom|initial|inherit;
Властивість vertical-align може отримувати 12 значень:
-
baseline -
Вирівнює базову лінію поточного елемента за базовою лінії батька.
автор: Svitlana -
length -
Піднімає або опускає елемент на задану відстань. Від'ємні значення дозволені.
автор: Svitlana -
sub -
Елемент зображується як підрядковий у вигляді нижнього індексу. Розмір шрифту при цьому не змінюється
автор: Svitlana -
super -
Елемент зображується як надрядковий у вигляді верхнього індексу. Розмір шрифту залишається незмінним.
автор: Svitlana -
top -
Вирівнювання верхнього краю елемента по вершині найвищого елемента рядка.
автор: Svitlana -
text-top -
Верхня межа елемента вирівнюється за найвищим текстовим елементом поточного рядка.
автор: Svitlana -
middle -
Елемент буде по середині батьківського елемента.
автор: Svitlana -
bottom -
Вирівнює основу поточного елемента по нижній частині рядкового елемента, розташованого нижче всіх.
автор: Svitlana -
text-bottom -
Основа елемента вирівнюється по самому нижньому краю поточного рядка.
автор: Svitlana -
% -
Піднімає або опустити елемент у відсотках від властивості line-height. Від'ємні значення дозволені.
автор: Svitlana -
initial -
Встановлює властивість у значення без задання
автор: Svitlana -
inherit -
Вказує на спадковість властивості від свого батьківського елемента.
автор: Svitlana
| Значення без задання: | baseline |
|---|---|
| Наслідує: | Ні |
| Анімується: | Так |
| JavaScript синтаксис: | object.style.verticalAlign="top" |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 4 | 12 | 4 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
Приклади
+ запропонувати свій приклад у пісочниці
Картинки в рядку вирівнюються відносно тексту: перша — верхом по верхівці рядка (text-top), друга — по базовій лінії (типово).
HTML
<p>Рядок тексту з <img class="tt" src="/img/logo.svg" alt="text-top"> картинкою text-top і <img class="bl" src="/img/logo.svg" alt="baseline"> картинкою baseline.</p>
CSS
img {
width: 40px;
}
.tt { vertical-align: text-top; }
.bl { vertical-align: baseline; }
Демонстрація роботи властивості
HTML
<div class="info">
<p>За допомогою властивості <code>vertical-align</code> ми можемо задати вертикальне вирівнювання для рядкового елемента.</p>
<p>Для кожного нащадка нижче задано різне вирівнювання: <em>top</em>, <em>middle</em> i <em>bottom</em> відповідно. Темний блок відіграє роль контенту в блоці, відносно якого ми і вирівнюємо заголовки.</p>
</div>
<div class="wrapper">
<div class="block one">
<h2 class="child">top</h2>
<div class="content"></div>
</div>
<div class="block two">
<h2 class="child">middle</h2>
<div class="content"></div>
</div>
<div class="block three">
<h2 class="child">bottom</h2>
<div class="content"></div>
</div>
</div>
CSS
* {
box-sizing: border-box;
}
body {
font-family: monospace;
font-size: 17px;
}
.info {
padding: 4px 6px;
}
code {
font-weight: 700;
color: #444;
border-bottom: 2px solid #666;
}
.wrapper {
display: flex;
justify-content: space-around;
}
.block {
background-color: gold;
font-size: 12px;
}
.block .child {
display: inline-block;
margin: 0;
width: 100px;
text-align: center;
color: #353535;
}
.content {
height: 150px;
width: 15px;
background-color: #666;
display: inline-block;
}
.block.one > * {
vertical-align: top;
}
.block.two > * {
vertical-align: middle;
}
.block.three > * {
vertical-align: bottom;
}
Іконка поруч із текстом: типовий baseline проти vertical-align: middle — і центрування блока, яке робить уже не vertical-align.
HTML
<p>Типово по базовій лінії: <span class="icon"></span> іконка сидить низько.</p>
<p class="fix">З vertical-align: middle: <span class="icon"></span> іконка на місці.</p>
<div class="center">А блок у блоці центрує flex, а не vertical-align</div>
CSS
.icon {
display: inline-block;
width: 22px;
height: 22px;
background: #2b6cb0;
border-radius: 4px;
}
.fix .icon {
vertical-align: middle;
}
.center {
display: flex;
align-items: center;
height: 70px;
padding: 0 10px;
border: 1px solid #666;
}
Вертикальне вирівнювання вмісту таблиці
HTML
<table>
<tbody>
<tr>
<td style="vertical-align: baseline;">baseline</td>
<td style="vertical-align: top;">top</td>
<td style="vertical-align: middle;">middle</td>
<td style="vertical-align: bottom;">bottom</td>
</tr>
</tbody>
</table>
CSS
table {
font-family: monospace;
font-size: 17px;
color: #222;
text-align: center;
}
td {
height: 150px;
width: 125px;
}
table,
td {
border: 2px solid #666;
}
Приклад роботи різних значень
HTML
<p>Значення(ключові слова) для властивості <code>vertical-align</code>, які найчастіше використовуються:</p>
<hr>
<select id="form">
<option value="baseline">baseline</option>
<option value="sub">sub</option>
<option value="super">super</option>
<option value="top">top</option>
<option value="middle">middle</option>
<option value="bottom">bottom</option>
</select>
<hr>
<p class="example"><span id="text">Це приклад роботи властивості: </span><strong>example</strong></p>
CSS
body {
font-family: monospace;
font-size: 17px;
line-height: 1.54;
}
strong {
color: coolgrey;
border: 1px solid orange;
}
#text {
text-decoration: overline underline;
}
JS
var text = document.getElementById('text');
var form = document.getElementById('form');
form.onchange = function () {
for (var i = 0; i < form.options.length; i++) {if (window.CP.shouldStopExecution(0)) break;
if (form.options[i].selected == true) {
text.style.verticalAlign = form.options[i].value;
}
}window.CP.exitedLoop(0);
};
//# sourceURL=pen.js
HTML
<div>
<p id="one">Це просто текст із картинкою: <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" alt="star" height="17px" width="17px"></p>
<p id="two">Це просто текст із картинкою: <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" alt="star" height="17px" width="17px"></p>
<p id="three">Це просто текст із картинкою: <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" alt="star" height="17px" width="17px"></p>
</div>
CSS
body {
font-size: 17px;
font-family: monospace;
color: #222;
padding: 36px;
}
p {
background-color: #f1f1f1;
padding: 16px;
text-decoration: underline overline;
}
#one img {
vertical-align: baseline;
}
#two img {
vertical-align: bottom;
}
#three img {
vertical-align: middle;
}
Коментарі
Коментарів ще немає — будьте першим!