CSS vertical-align — вирівнювання рядкових елементів по вертикалі


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

Властивість vertical-align

Властивість може бути використана у двох випадках:

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

  • для вирівнювання по вертикалі в комірках таблиці:

  • baseline - вирівнює базову лінію комірки з базовою лінією першого текстового рядка або іншого вкладеного елемента.
  • bottom - вирівнює по нижньому краю комірки.
  • middle - вирівнює по середині комірки.
  • top - вирівнює вміст комірки по його верхньому краю.

Як значення також можна використовувати відсотки, пікселі або інші доступні одиниці. Позитивне значення зміщує елемент вгору щодо базової лінії, в той час як негативне значення опускає його вниз. При використанні відсотків, відлік ведеться від значення властивості line-height, при цьому 0% аналогічно значенню baseline.

автор: Svitlana

Загальний опис

автор: NagarD

Нотатка

Допустимі до використання негативні значення. Зверніть увагу, що властивість vertical-align не впливає на блокові елементи!

автор: Svitlana

Синтаксис

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"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 4 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
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; }
автор: Svitlana

Демонстрація роботи властивості

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;
}
автор: Svitlana

Іконка поруч із текстом: типовий 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;
}
автор: NagarD

Вертикальне вирівнювання вмісту таблиці

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;
}
автор: Svitlana

Приклад роботи різних значень

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
автор: Svitlana

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;
}
автор: Svitlana

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід