Ð CSS еÑÑÑ Ð²Ñего неÑколÑко ÑÐµÑ Ð½Ð¸Ðº ÑенÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑлеменÑов. ÐÑли Ð¸Ñ Ð·Ð½Ð°ÑÑ, Ñо болÑÑинÑÑво Ð·Ð°Ð´Ð°Ñ ÑеÑаÑÑÑÑ Ð¿ÑоÑÑо.
ÐоÑизонÑалÑное
text-align
ÐÐ»Ñ ÑенÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð»Ð°Ð¹Ð½Ð¾Ð²ÑÑ
ÑлеменÑов â доÑÑаÑоÑно поÑÑавиÑÑ ÑодиÑÐµÐ»Ñ text-align: center:
<style>
.outer {
text-align: center;
border: 1px solid blue;
}
</style>
<div class="outer">ТекÑÑ</div>
ÐÐ»Ñ ÑенÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ° ÑÑо Ñже не подойдÑÑ, ÑвойÑÑво пÑоÑÑо не подейÑÑвÑеÑ. ÐапÑимеÑ:
<style>
.outer {
text-align: center;
border: 1px solid blue;
}
.inner {
width: 100px;
border: 1px solid red;
}
</style>
<div class="outer">
<div class="inner">ТекÑÑ</div>
</div>
margin: auto
Ðлок по гоÑизонÑали ÑенÑÑиÑÑеÑÑÑ margin: auto:
<style>
.outer {
border: 1px solid blue;
}
.inner {
width: 100px;
border: 1px solid red;
margin: auto;
}
</style>
<div class="outer">
<div class="inner">ТекÑÑ</div>
</div>
РоÑлиÑие Ð¾Ñ width/height, знаÑение auto Ð´Ð»Ñ margin Ñамо не поÑвлÑеÑÑÑ. ÐбÑÑно margin Ñавно конкÑеÑной велиÑине Ð´Ð»Ñ ÑлеменÑа, напÑÐ¸Ð¼ÐµÑ 0 Ð´Ð»Ñ DIV. ÐÑжно поÑÑавиÑÑ ÐµÐ³Ð¾ Ñвно.
ÐнаÑение margin-left:auto/margin-right:auto заÑÑавлÑÐµÑ Ð±ÑаÑÐ·ÐµÑ Ð²ÑделÑÑÑ Ð¿Ð¾Ð´ margin вÑÑ Ð´Ð¾ÑÑÑпное ÑÐ±Ð¾ÐºÑ Ð¿ÑоÑÑÑанÑÑво. РеÑли и Ñо и дÑÑгое auto, Ñо Ñлева и ÑпÑава бÑÐ´ÐµÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñй оÑÑÑÑп, Ñаким обÑазом ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¾ÐºÐ°Ð¶ÐµÑÑÑ Ð² ÑеÑедине. ÐеÑали вÑÑиÑлений опиÑÐ°Ð½Ñ Ð² Ñазделе ÑпеÑиÑикаÑии Calculating widths and margins.
ÐеÑÑикалÑное
ÐÐ»Ñ Ð³Ð¾ÑизонÑалÑного ÑенÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²ÑÑ Ð¿ÑоÑÑо. ÐеÑÑикалÑное же изнаÑалÑно не бÑло пÑедÑÑмоÑÑено в ÑпеÑиÑикаÑии CSS и по Ñей Ð´ÐµÐ½Ñ Ð²ÑзÑÐ²Ð°ÐµÑ ÑÑд пÑоблем.
ÐÑÑÑ ÑÑи оÑновнÑÑ ÑеÑениÑ.
position:absolute + margin
ЦенÑÑиÑÑемÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾Ð·Ð¸ÑиониÑÑем абÑолÑÑно и опÑÑкаем до ÑеÑÐµÐ´Ð¸Ð½Ñ Ð¿Ð¾ веÑÑикали пÑи помоÑи top:50%:
<style>
.outer {
position: relative;
height: 5em;
border: 1px solid blue;
}
.inner {
position: absolute;
top: 50%;
border: 1px solid red;
}
</style>
<div class="outer">
<div class="inner">ТекÑÑ</div>
</div>
ÐÑо, конеÑно, не ÑовÑем ÑенÑÑ. Ðо ÑенÑÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²ÐµÑÑ Ð½ÑÑ Ð³ÑаниÑа. ÐÑжно еÑÑ Ð¿ÑиподнÑÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ð° Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ñ Ñвоей вÑÑоÑÑ.
ÐÑÑоÑа ÑенÑÑиÑÑемого ÑлеменÑа должна бÑÑÑ Ð¸Ð·Ð²ÐµÑÑна. РодиÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð»ÑбÑÑ Ð²ÑÑоÑÑ.
ÐÑли Ð¼Ñ Ð·Ð½Ð°ÐµÐ¼, ÑÑо ÑÑо Ñовно одна ÑÑÑока, Ñо ÐµÑ Ð²ÑÑоÑа Ñавна line-height.
ÐÑиподнимем ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ð° пол-вÑÑоÑÑ Ð¿Ñи помоÑи margin-top:
<style>
.outer {
position: relative;
height: 5em;
border: 1px solid blue;
}
.inner {
position: absolute;
top: 50%;
margin-top: -0.625em;
border: 1px solid red;
}
</style>
<div class="outer">
<div class="inner">ТекÑÑ</div>
</div>
-0.625em?ÐÑи ÑÑандаÑÑнÑÑ
наÑÑÑойкаÑ
бÑаÑзеÑа вÑÑоÑа ÑÑÑоки line-height: 1.25, еÑли поделиÑÑ Ð½Ð° два 1.25em / 2 = 0.625em.
ÐонеÑно, вÑÑоÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ дÑÑгой, главное ÑÑÐ¾Ð±Ñ Ð¼Ñ ÐµÑ Ð·Ð½Ð°Ð»Ð¸ заÑанее.
Ðожно аналогиÑно ÑенÑÑиÑоваÑÑ Ð¸ по гоÑизонÑали, еÑли извеÑÑен гоÑизонÑалÑнÑй ÑазмеÑ, пÑи помоÑи left:50% и оÑÑиÑаÑелÑного margin-left.
Ðдна ÑÑÑока: line-height
ÐеÑÑикалÑно оÑÑенÑÑиÑоваÑÑ Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ð² ÑлеменÑе Ñ Ð¸Ð·Ð²ÐµÑÑной вÑÑоÑой height можно, Ñказав ÑÑÑ Ð²ÑÑоÑÑ Ð² ÑвойÑÑве line-height:
<style>
.outer {
height: 5em;
line-height: 5em;
border: 1px solid blue;
}
</style>
<div class="outer">
<span style="border:1px solid red">ТекÑÑ</span>
</div>
ÐÑо ÑабоÑаеÑ, но лиÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока ÑÑÑока одна, а еÑли ÑодеÑжимое вдÑÑг пеÑеноÑиÑÑÑ Ð½Ð° дÑÑгÑÑ ÑÑÑокÑ, Ñо наÑÐ¸Ð½Ð°ÐµÑ Ð²ÑглÑдеÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно ÑÑодливо.
ТаблиÑа Ñ vertical-align
У ÑвойÑÑва vertical-align, коÑоÑое ÑпÑавлÑÐµÑ Ð²ÐµÑÑикалÑнÑм ÑаÑположением ÑлеменÑа, еÑÑÑ Ð´Ð²Ð° Ñежима ÑабоÑÑ.
Ð ÑаблиÑаÑ
ÑвойÑÑво vertical-align ÑказÑÐ²Ð°ÐµÑ ÑаÑположение ÑодеÑжимого ÑÑейки.
Ðго возможнÑе знаÑениÑ:
baseline- ÐнаÑение по ÑмолÑаниÑ.
middle,top,bottom- РаÑполагаÑÑ ÑодеÑжимое поÑеÑедине, ввеÑÑ Ñ, Ð²Ð½Ð¸Ð·Ñ ÑÑейки.
ÐапÑимеÑ, ниже еÑÑÑ ÑаблиÑа Ñо вÑеми 3-Ð¼Ñ Ð·Ð½Ð°ÑениÑми:
<style>
table { border-collapse: collapse; }
td {
border: 1px solid blue;
height: 100px;
}
</style>
<table>
<tr>
<td style="vertical-align: top">top</td>
<td style="vertical-align: middle">middle</td>
<td style="vertical-align: bottom">bottom</td>
</tr>
</table>
ÐбÑаÑим внимание, ÑÑо в ÑÑейке Ñ vertical-align: middle ÑодеÑжимое наÑ
одиÑÑÑ Ð¿Ð¾ ÑенÑÑÑ. Таким обÑазом, можно обеÑнÑÑÑ Ð½ÑжнÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² ÑаблиÑÑ ÑазмеÑа width:100%;height:100% Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑейкой, Ñ ÐºÐ¾ÑоÑой ÑказаÑÑ vertical-align:middle, и он бÑÐ´ÐµÑ Ð¾ÑÑенÑÑиÑован.
Ðо Ð¼Ñ ÑаÑÑмоÑÑим более кÑаÑивÑй ÑпоÑоб, коÑоÑÑй поддеÑживаеÑÑÑ Ð²Ð¾ вÑеÑ
ÑовÑеменнÑÑ
бÑаÑзеÑаÑ
, и в IE8+. РниÑ
не обÑзаÑелÑно делаÑÑ ÑаблиÑÑ, Ñак как доÑÑÑпно знаÑение display:table-cell. ÐÐ»Ñ ÑлеменÑа Ñ Ñаким display иÑполÑзÑÑÑÑÑ Ñе же алгоÑиÑÐ¼Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑиÑÐ¸Ð½Ñ Ð¸ ÑенÑÑиÑованиÑ, ÑÑо и в TD. Ð, в Ñом ÑиÑле, ÑабоÑÐ°ÐµÑ vertical-align:
ÐÑÐ¸Ð¼ÐµÑ ÑенÑÑиÑованиÑ:
<div style="display: table-cell; vertical-align: middle; height: 100px; border: 1px solid red">
<button>Ðнопка<br>Ñ Ð»Ñбой вÑÑоÑой<br>и ÑиÑиной</button>
</div>
ÐÑÐ¾Ñ ÑпоÑоб замеÑаÑелен Ñем, ÑÑо он не ÑÑебÑÐµÑ Ð·Ð½Ð°Ð½Ð¸Ñ Ð²ÑÑоÑÑ ÑлеменÑов.
Ðднако Ñ Ð½ÐµÐ³Ð¾ еÑÑÑ Ð¾ÑобенноÑÑÑ. ÐмеÑÑе Ñ vertical-align ÑодиÑелÑÑкий блок полÑÑÐ°ÐµÑ ÑаблиÑнÑй алгоÑиÑм вÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑиÑÐ¸Ð½Ñ Ð¸ наÑÐ¸Ð½Ð°ÐµÑ Ð¿Ð¾Ð´ÑÑÑаиваÑÑÑÑ Ð¿Ð¾Ð´ ÑодеÑжимое. ÐÑо не вÑегда желаÑелÑно.
ЧÑÐ¾Ð±Ñ ÐµÐ³Ð¾ ÑаÑÑÑнÑÑÑ, нÑжно ÑказаÑÑ width Ñвно, напÑимеÑ: 300px:
<div style="display: table-cell; vertical-align: middle; height: 100px; width: 300px; border: 1px solid red">
<button>Ðнопка<br>Ñ Ð»Ñбой вÑÑоÑой<br>и ÑиÑиной</button>
</div>
Ðожно и в пÑоÑенÑÐ°Ñ , но в пÑимеÑе вÑÑе они не ÑÑабоÑаÑÑ, поÑÐ¾Ð¼Ñ ÑÑо ÑÑÑÑкÑÑÑа ÑаблиÑÑ Â«Ñломана» â ÑÑейка еÑÑÑ, а ÑобÑÑвенно ÑаблиÑÑ-Ñо неÑ.
ÐÑо можно поÑиниÑÑ, завеÑнÑв «пÑевдоÑÑейкÑ» в ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñ display:table, коÑоÑÐ¾Ð¼Ñ Ð¸ поÑÑавим ÑиÑинÑ:
<div style="display: table; width: 100%">
<div style="display: table-cell; vertical-align: middle; height: 100px; border: 1px solid blue">
<button>Ðнопка<br>Ñ Ð»Ñбой вÑÑоÑой<br>и ÑиÑиной</button>
</div>
</div>
ÐÑли дополниÑелÑно нÑжно гоÑизонÑалÑное ÑенÑÑиÑование â оно обеÑпеÑиваеÑÑÑ Ð´ÑÑгими ÑÑедÑÑвами, напÑÐ¸Ð¼ÐµÑ margin: 0 auto Ð´Ð»Ñ Ð±Ð»Ð¾ÑнÑÑ
ÑлеменÑов или text-align:center на ÑодиÑеле â Ð´Ð»Ñ Ð´ÑÑгиÑ
.
ЦенÑÑиÑование в ÑÑÑоке Ñ vertical-align
ÐÐ»Ñ Ð¸Ð½Ð»Ð°Ð¹Ð½Ð¾Ð²ÑÑ
ÑлеменÑов (display:inline/inline-block), вклÑÑÐ°Ñ ÐºÐ°ÑÑинки, ÑвойÑÑво vertical-align ÑенÑÑиÑÑÐµÑ Ñам инлайн-ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² окÑÑжаÑÑем его ÑекÑÑе.
Ð ÑÑом ÑлÑÑае Ð½Ð°Ð±Ð¾Ñ Ð·Ð½Ð°Ñений неÑколÑко дÑÑгой:
ÐÑо можно иÑполÑзоваÑÑ Ð¸ Ð´Ð»Ñ ÑенÑÑиÑованиÑ, еÑли вÑÑоÑа ÑодиÑÐµÐ»Ñ Ð¸Ð·Ð²ÐµÑÑна, а ÑенÑÑиÑÑемого ÑлеменÑа â неÑ.
ÐопÑÑÑим, вÑÑоÑа внеÑнего ÑлеменÑа 120px. Укажем ÐµÑ Ð² ÑвойÑÑве line-height:
<style>
.outer {
line-height: 120px;
}
.inner {
display: inline-block; /* ÑенÑÑиÑоваÑÑ..*/
vertical-align: middle; /* ..по веÑÑикали */
line-height: 1.25; /* пеÑеопÑеделиÑÑ Ð²ÑÑоÑÑ ÑÑÑоки на обÑÑнÑÑ */
border: 1px solid red;
}
</style>
<div class="outer" style="height: 120px;border: 1px solid blue">
<span class="inner">ЦенÑÑиÑован<br>веÑÑикалÑно</span>
</div>
РабоÑÐ°ÐµÑ Ð²Ð¾ вÑÐµÑ Ð±ÑаÑзеÑÐ°Ñ Ð¸ IE8+.
СвойÑÑво line-height наÑледÑеÑÑÑ, поÑÑÐ¾Ð¼Ñ Ð½Ð°Ð´Ð¾ знаÑÑ Â«Ð¿ÑавилÑнÑÑ» вÑÑоÑÑ ÑÑÑоки и пеÑеопÑеделÑÑÑ ÐµÑ Ð´Ð»Ñ inner.
ЦенÑÑиÑование Ñ vertical-align без ÑаблиÑ
ÐÑли ÑенÑÑиÑование должно ÑабоÑаÑÑ Ð´Ð»Ñ Ð»Ñбой вÑÑоÑÑ ÑодиÑÐµÐ»Ñ Ð¸ ÑенÑÑиÑÑемого ÑлеменÑа, Ñо обÑÑно иÑполÑзÑÑÑ ÑаблиÑÑ Ð¸Ð»Ð¸ display:table-cell Ñ vertical-align.
ÐÑли ÑенÑÑиÑÑÑÑÑÑ Ð½Ðµ-блоÑнÑе ÑлеменÑÑ, напÑÐ¸Ð¼ÐµÑ inline или inline-block, Ñо vertical-align Ð¼Ð¾Ð¶ÐµÑ ÑеÑиÑÑ Ð·Ð°Ð´Ð°ÑÑ Ð±ÐµÐ· вÑÑкиÑ
ÑаблиÑ. ÐÑавда, понадобиÑÑÑ Ð²ÑпомогаÑелÑнÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ (можно ÑеÑез :before).
ÐÑимеÑ:
<style>
.before {
display: inline-block;
height: 100%;
vertical-align: middle;
}
.inner {
display: inline-block;
vertical-align: middle;
}
</style>
<div class="outer" style="height:100px;border:1px solid blue">
<span class="before"></span>
<span class="inner" style="border:1px solid red">
ЦенÑÑиÑованнÑй<br>ÐлеменÑ
</span>
</div>
- ÐеÑед ÑенÑÑиÑÑемÑм ÑлеменÑом помеÑаеÑÑÑ Ð²ÑпомогаÑелÑнÑй инлайн-блок
before, занимаÑÑий вÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ Ð²ÑÑоÑÑ. - ЦенÑÑиÑÑемÑй блок вÑÑовнен по его ÑеÑедине.
ÐÐ»Ñ Ð²ÑеÑ
ÑовÑеменнÑÑ
бÑаÑзеÑов и IE8 можно добавиÑÑ Ð²ÑпомогаÑелÑнÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑеÑез :before:
<style>
.outer:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.inner {
display: inline-block;
vertical-align: middle;
}
/* добавим гоÑизонÑалÑное ÑенÑÑиÑование */
.outer {
text-align: center;
}
</style>
<div class="outer" style="height:100px; width: 100%; border:1px solid black">
<span class="inner" style="border:1px solid red">
ЦенÑÑиÑованнÑй<br>ÐлеменÑ
</span>
</div>
РпÑÐ¸Ð¼ÐµÑ Ð²ÑÑе добавлено Ñакже гоÑизонÑалÑное ÑенÑÑиÑование text-align: center. Ðо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ, ÑÑо на Ñамом деле внÑÑÑенний ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ ÑенÑÑиÑован гоÑизонÑалÑно, он немного ÑдвинÑÑ Ð²Ð¿Ñаво.
ÐÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾ÑомÑ, ÑÑо ÑенÑÑиÑÑеÑÑÑ Ð²ÐµÑÑ ÑекÑÑ, а пеÑед inner наÑ
одиÑÑÑ Ð¿Ñобел, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¼ÐµÑÑо.
ÐаÑианÑа два:
- УбÑаÑÑ Ð»Ð¸Ñний пÑобел междÑ
divи наÑаломinner, бÑдеÑ<div class="outer"><span class="inner">.... - ÐÑÑавиÑÑ Ð¿Ñобел, но ÑделаÑÑ Ð¾ÑÑиÑаÑелÑнÑй
margin-leftÑinner, ÑавнÑй ÑазмеÑÑ Ð¿Ñобела, ÑÑобÑinnerÑмеÑÑилÑÑ Ð»ÐµÐ²ÐµÐµ.
ÐÑоÑое ÑеÑение:
<style>
.outer:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.inner {
display: inline-block;
vertical-align: middle;
margin-left: -0.35em;
}
.outer {
text-align: center;
}
</style>
<div class="outer" style="height:100px; width: 100%; border:1px solid black">
<span class="inner" style="border:1px solid red">
ЦенÑÑиÑованнÑй<br>ÐлеменÑ
</span>
</div>
ЦенÑÑиÑование Ñ Ð¸ÑполÑзованием модели flexbox
ÐаннÑй меÑод поддеÑживаеÑÑÑ Ð²Ñеми ÑовÑеменнÑми бÑаÑзеÑами.
<style>
.outer {
display: flex;
justify-content: center; /*ЦенÑÑиÑование по гоÑизонÑали*/
align-items: center; /*ЦенÑÑиÑование по веÑÑикали */
}
</style>
<div class="outer" style="height:100px; width: 100%; border:1px solid black">
<span class="inner" style="border:1px solid red">
ЦенÑÑиÑованнÑй<br>ÐлеменÑ
</span>
</div>
ÐлÑÑÑ:
- Ðе ÑÑебÑеÑÑÑ Ð·Ð½Ð°Ð½Ð¸Ñ Ð²ÑÑоÑÑ ÑенÑÑиÑÑемого ÑлеменÑа.
- CSS ÑиÑÑÑй, коÑоÑкий и не ÑÑебÑÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑлеменÑов.
ÐинÑÑÑ:
- Ðе поддеÑживаеÑÑÑ IE9-, IE10 поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿ÑедÑдÑÑÑÑ Ð²ÐµÑÑÐ¸Ñ flexbox.
ÐÑого
ÐбобÑим ÑеÑениÑ, коÑоÑÑе обÑÑждалиÑÑ Ð² ÑÑой ÑÑаÑÑе.
ÐÐ»Ñ Ð³Ð¾ÑизонÑалÑного ÑенÑÑиÑованиÑ:
text-align: centerâ ÑенÑÑиÑÑÐµÑ Ð¸Ð½Ð»Ð°Ð¹Ð½-ÑлеменÑÑ Ð² блоке.margin: 0 autoâ ÑенÑÑиÑÑÐµÑ Ð±Ð»Ð¾Ðº внÑÑÑи ÑодиÑелÑ. У блока должна бÑÑÑ Ñказана ÑиÑина.
ÐÐ»Ñ Ð²ÐµÑÑикалÑного ÑенÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ блока внÑÑÑи дÑÑгого:
- ÐÑли ÑÐ°Ð·Ð¼ÐµÑ ÑенÑÑиÑÑемого ÑлеменÑа извеÑÑен, а ÑодиÑÐµÐ»Ñ â неÑ
-
РодиÑелÑ
position:relative, поÑомкÑposition:absolute; top:50%иmargin-top:-<половина-вÑÑоÑÑ-поÑомка>. ÐналогиÑно можно оÑÑенÑÑиÑоваÑÑ Ð¸ по гоÑизонÑали. - ÐÑли нÑжно оÑÑенÑÑиÑоваÑÑ Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ð² блоке, вÑÑоÑа коÑоÑого извеÑÑна
-
ÐоÑÑавиÑÑ Ð±Ð»Ð¾ÐºÑ
line-height: <вÑÑоÑа>. ÐÑÐ¶Ð½Ñ ÐºÐ¾Ð½ÐºÑеÑнÑе единиÑÑ Ð²ÑÑоÑÑ (px,emâ¦). ÐнаÑениеline-height:100%не бÑÐ´ÐµÑ ÑабоÑаÑÑ, Ñ.к. пÑоÑенÑÑ Ð±ÐµÑÑÑÑÑ Ð½Ðµ Ð¾Ñ Ð²ÑÑоÑÑ Ð±Ð»Ð¾ÐºÐ°, а Ð¾Ñ ÑекÑÑейline-height. - ÐÑÑоÑа ÑодиÑÐµÐ»Ñ Ð¸Ð·Ð²ÐµÑÑна, а ÑенÑÑиÑÑемого ÑлеменÑа â неÑ.
-
ÐоÑÑавиÑÑ
line-heightÑодиÑÐµÐ»Ñ Ð²Ð¾ вÑÑ ÐµÐ³Ð¾ вÑÑоÑÑ, а поÑÐ¾Ð¼ÐºÑ Ð¿Ð¾ÑÑавиÑÑdisplay:inline-block. - ÐÑÑоÑа Ð¾Ð±Ð¾Ð¸Ñ ÑлеменÑов неизвеÑÑна.
-
ТÑи ваÑианÑа:
- СделаÑÑ ÑлеменÑ-ÑодиÑÐµÐ»Ñ ÑÑейкой ÑаблиÑÑ Ð¿Ñи помоÑи
display:table-cell(IE8) или ÑеалÑной ÑаблиÑÑ, и поÑÑавиÑÑ ÐµÐ¼Ñvertical-align:middle. ÐÑлиÑно ÑабоÑаеÑ, но Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ дело Ñ ÑаблиÑей вмеÑÑо обÑÑного блока.
- СделаÑÑ ÑлеменÑ-ÑодиÑÐµÐ»Ñ ÑÑейкой ÑаблиÑÑ Ð¿Ñи помоÑи
- РеÑение Ñо вÑпомогаÑелÑнÑм ÑлеменÑом
outer:beforeи инлайн-блоками. Ðполне ÑнивеÑÑалÑно и не ÑоздаÑÑ ÑаблиÑÑ. - РеÑение Ñ Ð¸ÑполÑзованием flexbox.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)