vertical-align
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
CSS-ÑвойÑÑво vertical-align ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð²ÐµÑÑикалÑное вÑÑавнивание ÑÑÑоÑнÑÑ
(англ. inline) и ÑÑÑоÑно-блоÑнÑÑ
(англ. inline-block) ÑлеменÑов или ÑÑеек ÑаблиÑÑ (table-cell).
ÐнÑеÑакÑивнÑй пÑимеÑ
vertical-align: baseline;
vertical-align: top;
vertical-align: middle;
vertical-align: bottom;
vertical-align: sub;
vertical-align: text-top;
<section class="default-example" id="default-example">
<p>
Align the star:
<img id="example-element" src="/shared-assets/images/examples/star2.png" />
</p>
</section>
#default-example > p {
line-height: 3em;
font-family: monospace;
font-size: 1.2em;
text-decoration: underline overline;
}
СвойÑÑво vertical-align Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² двÑÑ
конÑекÑÑаÑ
:
- ÐÐ»Ñ Ð²ÐµÑÑикалÑного вÑÑÐ°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑи ÑÑÑоÑного ÑлеменÑа внÑÑÑи ÑодеÑжаÑей его ÑÑÑоки. ÐапÑимеÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð½ÐµÐ³Ð¾ можно задаÑÑ Ð²ÐµÑÑикалÑное позиÑиониÑование изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² ÑÑÑоке ÑекÑÑа.
- ÐÐ»Ñ Ð²ÐµÑÑикалÑного вÑÑÐ°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ ÑодеÑжимого ÑÑейки ÑаблиÑÑ.
СледÑÐµÑ Ð¸Ð¼ÐµÑÑ Ð² видÑ, ÑÑо ÑвойÑÑво vertical-align пÑименÑеÑÑÑ ÑолÑко к ÑÑÑоÑнÑм и ÑÑÑоÑно-блоÑнÑм ÑлеменÑам, а Ñакже к ÑлеменÑам ÑÑеек ÑаблиÑÑ: его нелÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ð´Ð»Ñ Ð²ÐµÑÑикалÑного позиÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÑнÑÑ
ÑлеменÑов.
СинÑакÑиÑ
/* ÐлÑÑевÑе Ñлова */
vertical-align: baseline;
vertical-align: sub;
vertical-align: super;
vertical-align: text-top;
vertical-align: text-bottom;
vertical-align: middle;
vertical-align: top;
vertical-align: bottom;
/* ÐнаÑÐµÐ½Ð¸Ñ Ð´Ð»Ð¸Ð½Ñ (<length>) */
vertical-align: 10em;
vertical-align: 4px;
/* ÐÑоÑенÑнÑе знаÑÐµÐ½Ð¸Ñ (<percentage>) */
vertical-align: 20%;
/* ÐлобалÑнÑе знаÑÐµÐ½Ð¸Ñ */
vertical-align: inherit;
vertical-align: initial;
vertical-align: revert;
vertical-align: revert-layer;
vertical-align: unset;
СвойÑÑво vertical-align задаÑÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из знаÑений, ÑказаннÑÑ
ниже.
ÐнаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÑÑоÑнÑÑ ÑлеменÑов
ÐнаÑÐµÐ½Ð¸Ñ Ð¾ÑноÑиÑелÑно ÑодиÑелÑÑкого ÑлеменÑа
ÐаннÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð¸ÑиониÑÑÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾ веÑÑикали оÑноÑиÑелÑно ÑодиÑелÑÑкого ÑлеменÑа:
baseline-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ Ð»Ð¸Ð½Ð¸Ñ ÑлеменÑа Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ линией ÑодиÑелÑÑкого ÑлеменÑа. ÐÐ°Ð·Ð¾Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ Ð·Ð°Ð¼ÐµÑаемÑÑ ÑлеменÑов, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº
<textarea>, не опиÑана в ÑпеÑиÑикаÑии HTML, ÑÑо ознаÑаеÑ, ÑÑо Ð¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ пÑи Ñказании данного клÑÑевого Ñлова Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑлиÑаÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ð±ÑаÑзеÑа. sub-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ Ð»Ð¸Ð½Ð¸Ñ ÑлеменÑа Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ линией подÑÑÑоÑного индекÑа Ñвоего ÑодиÑелÑ.
super-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ Ð»Ð¸Ð½Ð¸Ñ ÑлеменÑа Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ линией надÑÑÑоÑного индекÑа Ñвоего ÑодиÑелÑ.
text-top-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð²ÐµÑÑ Ð½Ð¸Ð¹ кÑай ÑлеменÑа Ñ Ð²ÐµÑÑ Ð½Ð¸Ð¼ кÑаем ÑÑиÑÑа ÑодиÑелÑÑкого ÑлеменÑа.
text-bottom-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð½Ð¸Ð¶Ð½Ð¸Ð¹ кÑай ÑлеменÑа Ñ Ð½Ð¸Ð¶Ð½Ð¸Ð¼ кÑаем ÑÑиÑÑа ÑодиÑелÑÑкого ÑлеменÑа.
middle-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ ÑеÑÐµÐ´Ð¸Ð½Ñ ÑлеменÑа Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ линией Ñвоего ÑодиÑÐµÐ»Ñ Ð¿Ð»ÑÑ Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ð° Ð¾Ñ ÐµÐ³Ð¾ вÑÑоÑÑ (x-height).
<length>-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ Ð»Ð¸Ð½Ð¸Ñ ÑлеменÑа оÑноÑиÑелÑно базовой линии ÑодиÑелÑÑкого ÑлеменÑа Ñо ÑмеÑением на ÑказаннÑÑ Ð²ÐµÐ»Ð¸ÑинÑ. ÐопÑÑÑÐ¸Ð¼Ñ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ.
<percentage>-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ Ð»Ð¸Ð½Ð¸Ñ ÑлеменÑа оÑноÑиÑелÑно базовой линии ÑодиÑелÑÑкого ÑлеменÑа Ñо ÑмеÑением на ÑказаннÑÑ Ð² пÑоÑенÑÐ°Ñ Ð²ÐµÐ»Ð¸ÑÐ¸Ð½Ñ (вÑÑиÑлÑеÑÑÑ Ð¾ÑноÑиÑелÑно знаÑÐµÐ½Ð¸Ñ ÑвойÑÑва
line-height). ÐопÑÑÑÐ¸Ð¼Ñ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ.
ÐнаÑÐµÐ½Ð¸Ñ Ð¾ÑноÑиÑелÑно ÑÑÑоки
СледÑÑÑие знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð¸ÑиониÑÑÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾ веÑÑикали оÑноÑиÑелÑно вÑей ÑÑÑоки:
top-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð²ÐµÑÑ Ð½Ð¸Ð¹ кÑай ÑлеменÑа и его поÑомков Ñ Ð²ÐµÑÑ Ð½Ð¸Ð¼ кÑаем вÑей ÑÑÑоки.
bottom-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð½Ð¸Ð¶Ð½Ð¸Ð¹ кÑай ÑлеменÑа и его поÑомков Ñ Ð½Ð¸Ð¶Ð½Ð¸Ð¼ кÑаем вÑей ÑÑÑоки.
ÐÐ»Ñ ÑлеменÑов, Ñ ÐºÐ¾ÑоÑÑÑ
Ð½ÐµÑ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ линии, вмеÑÑо Ð½ÐµÑ Ð¸ÑполÑзÑеÑÑÑ Ð½Ð¸Ð¶Ð½ÑÑ Ð³ÑаниÑа внеÑнего оÑÑÑÑпа.
ÐнаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÑеек ÑаблиÑÑ
baseline(иsub,super,text-top,text-bottom,<length>, и<percentage>)-
ÐÑÑавниваÑÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ Ð»Ð¸Ð½Ð¸Ñ ÑÑейки Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ линией вÑÐµÑ Ð¾ÑÑалÑнÑÑ ÑÑеек ÑÑой ÑÑÑоки, коÑоÑÑе вÑÑÐ°Ð²Ð½ÐµÐ½Ñ Ð¾ÑноÑиÑелÑно базовой линии.
top-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð²ÐµÑÑ Ð½ÑÑ Ð³ÑаниÑÑ
внÑÑÑеннего оÑÑÑÑпаÑÑейки Ñ Ð²ÐµÑÑ Ð½Ð¸Ð¼ кÑаем ÑÑÑоки ÑаблиÑÑ. middle-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð²Ð½ÑÑÑеннее Ð¿Ð¾Ð»Ñ ÑÑейки по ÑенÑÑÑ Ð¾ÑноÑиÑелÑно ÑÑÑоки ÑаблиÑÑ.
bottom-
ÐÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð½Ð¸Ð¶Ð½ÑÑ Ð³ÑаниÑÑ
внÑÑÑеннего оÑÑÑÑпаÑÑейки Ñ Ð½Ð¸Ð¶Ð½Ð¸Ð¼ кÑаем ÑÑÑоки ÑаблиÑÑ.
ÐопÑÑÑÐ¸Ð¼Ñ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ.
ФоÑмалÑное опÑеделение
| ÐаÑалÑное знаÑение | baseline |
|---|---|
| ÐÑименÑеÑÑÑ Ðº | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:. ÐÑо Ñакже пÑименÑеÑÑÑ Ðº ::first-letter и ::first-line. |
| ÐаÑледÑеÑÑÑ | Ð½ÐµÑ |
| ÐбÑабоÑка знаÑÐµÐ½Ð¸Ñ | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва: |
| Animation type | discrete |
ФоÑмалÑнÑй ÑинÑакÑиÑ
vertical-align =
[ first | last ] ||
<'alignment-baseline'> ||
<'baseline-shift'>
<alignment-baseline> =
baseline |
<baseline-metric>
<baseline-shift> =
<length-percentage> |
sub |
super |
top |
center |
bottom
<baseline-metric> =
text-bottom |
alphabetic |
ideographic |
middle |
central |
mathematical |
hanging |
text-top
<length-percentage> =
<length> |
<percentage>
ÐÑимеÑÑ
>ÐÑновной пÑимеÑ
HTML
<div>
ÐзобÑажение <img src="frame_image.svg" alt="link" width="32" height="32" /> Ñ
вÑÑавниванием по ÑмолÑаниÑ.
</div>
<div>
ÐзобÑажение
<img class="top" src="frame_image.svg" alt="link" width="32" height="32" /> Ñ
вÑÑавниванием по веÑÑ
Ð½ÐµÐ¼Ñ ÐºÑаÑ.
</div>
<div>
ÐзобÑажение
<img class="bottom" src="frame_image.svg" alt="link" width="32" height="32" />
Ñ Ð²ÑÑавниванием по Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ ÐºÑаÑ.
</div>
<div>
ÐзобÑажение
<img class="middle" src="frame_image.svg" alt="link" width="32" height="32" />
Ñ Ð²ÑÑавниванием по ÑенÑÑÑ.
</div>
CSS
img.top {
vertical-align: text-top;
}
img.bottom {
vertical-align: text-bottom;
}
img.middle {
vertical-align: middle;
}
РезÑлÑÑаÑ
ÐеÑÑикалÑное позиÑиониÑование ÑÑÑоÑного ÑлеменÑа
HTML
<p>
top: <img style="vertical-align: top" src="star.png" alt="star"/>
middle: <img style="vertical-align: middle" src="star.png" alt="star"/>
bottom: <img style="vertical-align: bottom" src="star.png" alt="star"/>
super: <img style="vertical-align: super" src="star.png" alt="star"/>
sub: <img style="vertical-align: sub" src="star.png" alt="star"/>
</p>
<p>
text-top: <img style="vertical-align: text-top" src="star.png" alt="star"/>
text-bottom: <img style="vertical-align: text-bottom" src="star.png" alt="star"/>
0.2em: <img style="vertical-align: 0.2em" src="star.png" alt="star"/>
-1em: <img style="vertical-align: -1em" src="star.png" alt="star"/>
20%: <img style="vertical-align: 20%" src="star.png" alt="star"/>
-100%: <img style="vertical-align: -100%" src="star.png" alt="star"/>
</p>
Result
ÐеÑÑикалÑное позиÑиониÑование ÑодеÑжимого ÑÑейки ÑаблиÑÑ
HTML
<table>
<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>
<td>
<p>
СÑÑеÑÑвÑÐµÑ ÑеоÑиÑ, коÑоÑÐ°Ñ ÑÑвеÑждаеÑ, ÑÑо еÑли Ð¾Ð´Ð½Ð°Ð¶Ð´Ñ ÐºÑо-нибÑдÑ
доподлинно вÑÑÑниÑ, ÑÑо Ñакое и Ð´Ð»Ñ Ñего нÑжна ÐÑеленнаÑ, она ÑоÑÑÐ°Ñ Ð¶Ðµ
иÑÑезнеÑ, и вмеÑÑо Ð½ÐµÑ Ð¿Ð¾ÑвиÑÑÑ Ð½ÐµÑÑо еÑÑ Ð±Ð¾Ð»ÐµÐµ пÑиÑÑдливое и
необÑÑÑнимое.
</p>
<p>СÑÑеÑÑвÑÐµÑ Ð¸ дÑÑÐ³Ð°Ñ ÑеоÑиÑ, ÑоглаÑно коÑоÑой ÑÑо Ñже ÑлÑÑилоÑÑ.</p>
</td>
</tr>
</table>
CSS
table {
margin-left: auto;
margin-right: auto;
width: 80%;
}
table,
th,
td {
border: 1px solid black;
}
td {
padding: 0.5em;
font-family: monospace;
}
РезÑлÑÑаÑ
СпеÑиÑикаÑии
| Specification |
|---|
| CSS Inline Layout Module Level 3 > # propdef-vertical-align > |