В CSS свойството vertical-align контролира вертикалното подравняване на елементи на вградено ниво или клетки на таблица в рамките на съдържащия ги елемент. Прилага се за елементи, които са част от ред текст или се показват като вграден блок или клетка от таблица.
Свойството 'vertical-align' обикновено се използва за вградени елементи като изображения, текст или вградени блокови елементи в ред от текст. Не се прилага директно към елементи на ниво блок; можете обаче да използвате техники като flexbox или позициониране, за да ги подравните вертикално.
Синтаксис:
Ето основния синтаксис за свойството vertical-align:
selector { vertical-align: value; }
„Стойността“ може да бъде една от следните опции:
ЗАБЕЛЕЖКА: Не забравяйте, че 'vertical-align' има специфично поведение в зависимост от типа на елемента и контекста, в който се използва, така че неговите ефекти може да не винаги са ясни. Това е особено полезно за подравняване на вградени елементи с текст или други вградени елементи.
Примери
Ето някои повече подробности и примери, свързани със свойството 'vertical-align' в CSS:
1. Подравняване на базовата линия:
Базово ниво Друг текст
2. Долен и горен индекс:
з2О е вода. х2+ и2= r2
3. Подравняване отгоре и отдолу:
Подравнено отгоре Подравнено отдолу
4. Средно подравняване:
звездна топология
Тази икона е вертикално центрирана
5. Подравняване на текста отгоре и отдолу:
Текстът е подравнен отгоре Текстът е подравнен отдолу
6. Процентно подравняване:
Използването на процентна стойност с вертикално подравняване ви позволява да подравните елемента вертикално на определен процент от височината на линията. Например, vertical-align: 50% ще центрира елемента на половината от височината на реда.
Центрирано вертикално
приоритетна опашка
7. Вертикално центриране на елементи на ниво блок:
За да центрирате вертикално елемент на ниво блок вътре в неговия родител, можете да използвате flexbox или мрежово оформление.
Flexbox example: html Vertically Centered css .parent { display: flex; justify-content: center; align-items: center; height: 200px; /* Set the desired container height */ }
8. Вертикално центриране с неизвестна височина на елемента:
Ако не знаете височината на елемента, който искате да центрирате вертикално, можете да използвате комбинация от позиция и трансформация:
html Vertically Centered (Unknown Height) CSS .parent { position: relative; height: 200px; /* Set the desired container height */ } .child { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
9. Вертикално центриране с многоредов текст:
За да центрирате вертикално многоредов текст в контейнер, можете да използвате комбинация от flexbox и псевдоелемент:
html Multi-line <br>Vertically Centered Text CSS .parent { display: flex; align-items: center; height: 200px; /* Set the desired container height */ } .child { flex: 1; text-align: center; } .child::before { content: ''; display: inline-block; vertical-align: middle; height: 100%; }
10. Вертикално центриране на изображения в контейнер с различни пропорции:
Ако имате изображения с различни пропорции, които искате да центрирате в контейнер, можете да използвате комбинация от flexbox и object-fit:
HTML:
<img src="//techcodeview.com/img/css-tutorial/72/vertical-align-css.webp" alt="Image 1"> <img src="//techcodeview.com/img/css-tutorial/72/vertical-align-css.webp" alt="Image 2">
CSS:
.parent { display: flex; align-items: center; justify-content: center; height: 200px; /* Set the desired container height */ } img { object-fit: contain; max-height: 100%; }
11. Комбиниране на вертикално подравняване с височина на линията:
Можете да комбинирате свойството vertical-align със свойството line-height, за да постигнете по-прецизно вертикално подравняване, особено при по-големи размери на шрифта.
.element { font-size: 24px; line-height: 1.5; vertical-align: middle; }
12. Използване на свойствата на дисплея за подравняване:
Въпреки че вертикалното подравняване работи предимно с елементи на вградено ниво, можете да промените свойството за показване, за да постигнете вертикално подравняване за елементи на ниво блок в специфични контексти.
.container { display: table-cell; vertical-align: middle; }
13. Вертикално подравняване в таблици:
Свойството vertical-align често се използва в клетки на таблица (
модем срещу рутер
td { vertical-align: middle; }
14. Подравняване на вградени блокови елементи:
Можете да използвате вертикално подравняване, за да подравните вградени блокови елементи в ред от текст, например икони до текст.
<span>⭐</span> Star Rating .icon { vertical-align: middle; font-size: 24px; }
Това са само няколко примера за работа с вертикално подравняване в различни сценарии. В зависимост от вашето конкретно оформление и изисквания може да се наложи да адаптирате или комбинирате тези техники, за да постигнете желаните резултати. CSS предоставя различни инструменти за ефективно справяне с вертикалното подравняване в различни контексти.
Не забравяйте, че докато свойството за вертикално подравняване има приложения, съществуват по-изчерпателни решения за всички сценарии за подравняване, особено елементи на ниво блок. За по-сложни оформления и изисквания за подравняване се препоръчва изследване на съвременни техники за CSS оформление като Flexbox, CSS Grid или дори стойности на CSS позиция (като абсолютни и относителни), за да постигнете желаните резултати по-ефективно и предвидимо.
Не забравяйте, че „vertical-align“ засяга само елементи на вградено ниво или клетки на таблица. Използвайте техники като flexbox, мрежово оформление или позициониране, за да подравните елементи на ниво блок вертикално.
Още няколко примера
table, th, td{ border: 2px solid red; border-collapse: collapse; font-size: 20px; } #super{ vertical-align: super; } #sub{ vertical-align: sub; } <table class="table"> <td>baseline</td> <td>middle</td> <td>bottom</td> <td>top</td> <td>Hi, Welcome to the javaTpoint.com. This site is developed so that students may learn computer science related technologies easily. The javaTpoint.com is always providing an easy and in-depth tutorial on various technologies. </td> </table> <h2> Use of super and sub values </h2> <h3>Using super value: x<span id="super">2</span>+ y<span id="super">2</span> = r<span id="super">2</span></h3> <h3> Chemical formula of Water by using sub value: H<span id="sub">2</span>O</h3>Тествайте сега
Изход
Сега има друг пример, в който подравняваме текста с изображението.
Пример
div{ font-size: 20px; border: 2px solid red; } img{ width:150px; height: 100px; } img.top { vertical-align: text-top; } img.bottom { vertical-align: text-bottom; } img.middle { vertical-align: middle; } An <img src="//techcodeview.com/img/css-tutorial/72/vertical-align-css-2.webp"> image with a default alignment. An <img src="//techcodeview.com/img/css-tutorial/72/vertical-align-css-2.webp" alt> image with a text-bottom alignment. An <img src="//techcodeview.com/img/css-tutorial/72/vertical-align-css-2.webp" alt> image with a middle alignment. An <img src="//techcodeview.com/img/css-tutorial/72/vertical-align-css-2.webp" alt> image with a text-top alignment.Тествайте сега
Изход
Предимства на вертикалното подравняване в CSS
Недостатъци на вертикалното подравняване в CSS
Като цяло, докато свойството за вертикално подравняване е удобно за подравняване на вградени елементи или клетки на таблица в ред от текст, разработчиците често се нуждаят от други CSS техники за по-разширено оформление и изисквания за позициониране, особено когато се занимават с елементи на ниво блок или сложни оформления. CSS Flexbox и CSS Grid са мощни алтернативи за по-широко подравняване и контрол на позиционирането.
Заключение
Свойството vertical-align е полезно за подравняване на вградени елементи в текст или клетки на таблица. Той обаче има ограничения и може да бъде предизвикателство за ефективно използване за сложни оформления или елементи на ниво блок. Разработчиците трябва да обмислят модерни техники за CSS оформление, които осигуряват повече контрол и гъвкавост при подравняване и позициониране.