СвойÑÑво display Ð¸Ð¼ÐµÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ ÑазнÑÑ
знаÑений. ÐбÑÑно, иÑполÑзÑÑÑÑÑ ÑолÑко ÑÑи из ниÑ
: none, inline и block, поÑÐ¾Ð¼Ñ ÑÑо когда-Ñо бÑаÑзеÑÑ Ð´ÑÑгие не поддеÑживали.
Ðо поÑле ÑÑ Ð¾Ð´Ð° IE7-, ÑÑало возможнÑм иÑполÑзоваÑÑ Ð¸ дÑÑгие знаÑÐµÐ½Ð¸Ñ Ñоже. РаÑÑмоÑÑим здеÑÑ Ð²ÐµÑÑ ÑпиÑок.
ÐнаÑение none
Самое пÑоÑÑое знаÑение. ÐÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ показÑваеÑÑÑ, вообÑе. Ðак бÑдÑо его и неÑ.
<div style="border:1px solid black">
ÐевидимÑй div (
<div style="display: none">Я - невидим!</div>
) СÑÐ¾Ð¸Ñ Ð²Ð½ÑÑÑи Ñкобок
</div>
ÐнаÑение block
- ÐлоÑнÑе ÑлеменÑÑ ÑаÑполагаÑÑÑÑ Ð¾Ð´Ð¸Ð½ над дÑÑгим, веÑÑикалÑно (еÑли Ð½ÐµÑ Ð¾ÑобÑÑ
ÑвойÑÑв позиÑиониÑованиÑ, напÑимеÑ
float). - Ðлок ÑÑÑемиÑÑÑ ÑаÑÑиÑиÑÑÑÑ Ð½Ð° вÑÑ Ð´Ð¾ÑÑÑпнÑÑ ÑиÑинÑ. Ðожно ÑказаÑÑ ÑиÑÐ¸Ð½Ñ Ð¸ вÑÑоÑÑ Ñвно.
ÐÑо знаÑение display многие ÑлеменÑÑ Ð¸Ð¼ÐµÑÑ Ð¿Ð¾ ÑмолÑаниÑ: <div>, заголовок <h1>, паÑагÑÐ°Ñ <p>.
<div style="border:1px solid black">
<div style="border:1px solid blue; width: 50%">ÐеÑвÑй</div>
<div style="border:1px solid red">ÐÑоÑой</div>
</div>
Ðлоки пÑилегаÑÑ Ð´ÑÑг к дÑÑÐ³Ñ Ð²Ð¿Ð»Ð¾ÑнÑÑ, еÑли Ñ Ð½Ð¸Ñ
Ð½ÐµÑ margin.
ÐнаÑение inline
- ÐлеменÑÑ ÑаÑполагаÑÑÑÑ Ð½Ð° Ñой же ÑÑÑоке, поÑледоваÑелÑно.
- ШиÑина и вÑÑоÑа ÑлеменÑа опÑеделÑÑÑÑÑ Ð¿Ð¾ ÑодеÑжимомÑ. ÐоменÑÑÑ Ð¸Ñ Ð½ÐµÐ»ÑзÑ.
ÐапÑимеÑ, инлайновÑе ÑлеменÑÑ Ð¿Ð¾ ÑмолÑаниÑ: <span>, <a>.
<span style="border:1px solid black">
<span style="border:1px solid blue; width:50%">ШиÑина</span>
<a style="border:1px solid red">ÐгноÑиÑÑеÑÑÑ</a>
</span>
ÐÑли Ð²Ñ Ð¿ÑиÑмоÑÑиÑеÑÑ Ð²Ð½Ð¸Ð¼Ð°ÑелÑно к пÑимеÑÑ Ð²ÑÑе, Ñо ÑвидиÑе, ÑÑо Ð¼ÐµÐ¶Ð´Ñ Ð²Ð½ÑÑÑенними <span> и <a> еÑÑÑ Ð¿Ñобел. ÐÑо поÑомÑ, ÑÑо он еÑÑÑ Ð² HTML.
ÐÑли ÑаÑположиÑÑ ÑлеменÑÑ Ð²Ð¿Ð»Ð¾ÑнÑÑ â его не бÑдеÑ:
<span style="border:1px solid black">
<span style="border:1px solid blue; width:50%">Ðез</span><a style="border:1px solid red">ÐÑобела</a>
</span>
СодеÑжимое инлайн-ÑлеменÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑеноÑиÑÑÑÑ Ð½Ð° дÑÑгÑÑ ÑÑÑокÑ.
ÐÑи ÑÑом ÐºÐ°Ð¶Ð´Ð°Ñ ÑÑÑока в ÑмÑÑле оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑвлÑеÑÑÑ Ð¾ÑделÑнÑм пÑÑмоÑголÑником («line box»). Так ÑÑо инлайн-ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿ÑÑмоÑголÑников, но в Ñелом, в оÑлиÑие Ð¾Ñ Ð±Ð»Ð¾ÐºÐ°, пÑÑмоÑголÑником не ÑвлÑеÑÑÑ.
ÐÑо пÑоÑвлÑеÑÑÑ, напÑимеÑ, пÑи назнаÑении Ñона.
ÐапÑимеÑ, ÑÑи пÑÑмоÑголÑника подÑÑд:
<div style="width:400px">
...<span style="background: lightgreen">
ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ
ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ ÐÑ
</span>...
</div>
ÐÑли инлайн-ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð³ÑаниÑÐ¸Ñ Ñ Ð±Ð»Ð¾ÐºÐ¾Ð¼, Ñо Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ обÑзаÑелÑно бÑÐ´ÐµÑ Ð¿ÐµÑÐµÐ½Ð¾Ñ ÑÑÑоки:
<div style="border:1px solid black">
<span style="border:1px solid red">Ðнлайн</span>
<div style="border:1px solid blue; width:50%">Ðлок</div>
<span style="border:1px solid red">Ðнлайн</span>
</div>
ÐнаÑение inline-block
ÐÑо знаÑение â ознаÑÐ°ÐµÑ ÑлеменÑ, коÑоÑÑй пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð½Ð°Ñ
одиÑÑÑÑ Ð² ÑÑÑоке (inline), но пÑи ÑÑом Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð²Ð°Ð¶Ð½Ñе ÑвойÑÑва блока.
Ðак и инлайн-ÑлеменÑ:
- РаÑполагаеÑÑÑ Ð² ÑÑÑоке.
- Ð Ð°Ð·Ð¼ÐµÑ ÑÑÑанавливаеÑÑÑ Ð¿Ð¾ ÑодеÑжимомÑ.
Ðо вÑÑм оÑÑалÑном â ÑÑо блок, Ñо еÑÑÑ:
- ÐÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ñегда пÑÑмоÑголÑнÑй.
- РабоÑаÑÑ ÑвойÑÑва
width/height.
ÐÑо знаÑение display иÑполÑзÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¾ÑобÑазиÑÑ Ð² Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ð±Ð»Ð¾ÑнÑе ÑлеменÑÑ, в Ñом ÑиÑле ÑазнÑÑ
ÑазмеÑов.
ÐапÑимеÑ:
<style>
li {
display: inline-block;
list-style: none;
border: 1px solid red;
}
</style>
<ul style="border:1px solid black; padding:0">
<li>Ðнлайн Ðлок<br>3 ÑÑÑоки<br>вÑÑоÑа/ÑиÑина Ñвно не заданÑ</li>
<li style="width:100px;height:100px">Ðнлайн<br>Ðлок 100x100</li>
<li style="width:60px;height:60px">Ðнлайн<br>Ðлок 60x60</li>
<li style="width:100px;height:60px">Ðнлайн<br>Ðлок 100x60</li>
<li style="width:60px;height:100px">Ðнлайн<br>Ðлок 60x100</li>
</ul>
СвойÑÑво vertical-align позволÑÐµÑ Ð²ÑÑовнÑÑÑ Ñакие ÑлеменÑÑ Ð²Ð½ÑÑÑи внеÑнего блока:
<style>
li {
display: inline-block;
list-style: none;
border:1px solid red;
vertical-align: middle;
}
</style>
<ul style="border:1px solid black; padding:0">
<li>Ðнлайн Ðлок<br>3 ÑÑÑоки<br>вÑÑоÑа/ÑиÑина Ñвно не заданÑ</li>
<li style="width:100px;height:100px">Ðнлайн<br>Ðлок 100x100</li>
<li style="width:60px;height:60px">Ðнлайн<br>Ðлок 60x60</li>
<li style="width:100px;height:60px">Ðнлайн<br>Ðлок 100x60</li>
<li style="width:60px;height:100px">Ðнлайн<br>Ðлок 60x100</li>
</ul>
Ðак и в ÑлÑÑае Ñ Ð¸Ð½Ð»Ð°Ð¹Ð½-ÑлеменÑами, пÑÐ¾Ð±ÐµÐ»Ñ Ð¼ÐµÐ¶Ð´Ñ Ð±Ð»Ð¾ÐºÐ°Ð¼Ð¸ поÑвлÑÑÑÑÑ Ð¸Ð·-за пÑобелов в HTML. ÐÑли ÑлеменÑÑ ÑпиÑка идÑÑ Ð²Ð¿Ð»Ð¾ÑнÑÑ, напÑимеÑ, генеÑиÑÑÑÑÑÑ Ð² JavaScript â Ð¸Ñ Ð½Ðµ бÑдеÑ.
ÐнаÑÐµÐ½Ð¸Ñ table-*
СовÑеменнÑе бÑаÑзеÑÑ (IE8+) позволÑÑÑ Ð¾Ð¿Ð¸ÑÑваÑÑ ÑаблиÑÑ Ð»ÑбÑми ÑлеменÑами, еÑли поÑÑавиÑÑ Ð¸Ð¼ ÑооÑвеÑÑÑвÑÑÑие знаÑÐµÐ½Ð¸Ñ display.
ÐÐ»Ñ ÑаблиÑÑ Ñеликом table, Ð´Ð»Ñ ÑÑÑоки â table-row, Ð´Ð»Ñ ÑÑейки â table-cell и Ñ.д.
ÐÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑзованиÑ:
<form style="display: table">
<div style="display: table-row">
<label style="display: table-cell">ÐмÑ:</label>
<input style="display: table-cell">
</div>
<div style="display: table-row">
<label style="display: table-cell">ФамилиÑ:</label>
<input style="display: table-cell">
</div>
</form>
Ðажно Ñо, ÑÑо ÑÑо дейÑÑвиÑелÑно полноÑÐµÐ½Ð½Ð°Ñ ÑаблиÑа. ÐÑполÑзÑÑÑÑÑ ÑаблиÑнÑе алгоÑиÑÐ¼Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑиÑÐ¸Ð½Ñ Ð¸ вÑÑоÑÑ ÑлеменÑа, опиÑаннÑе в ÑÑандаÑÑе.
ÐÑо Ñ Ð¾ÑоÑо Ð´Ð»Ñ ÑеманÑиÑеÑкой вÑÑÑÑки и позволÑÐµÑ Ð¸Ð·Ð±Ð°Ð²Ð¸ÑÑÑÑ Ð¾Ñ Ð»Ð¸ÑÐ½Ð¸Ñ Ñегов.
С ÑоÑки зÑÐµÐ½Ð¸Ñ ÑовÑеменного CSS, обÑÑнÑе <table>, <tr>, <td> и Ñ.д. â ÑÑо пÑоÑÑо ÑлеменÑÑ Ñ Ð¿ÑедопÑеделÑннÑми знаÑениÑми display:
table { display: table }
tr { display: table-row }
thead { display: table-header-group }
tbody { display: table-row-group }
tfoot { display: table-footer-group }
col { display: table-column }
colgroup { display: table-column-group }
td, th { display: table-cell }
caption { display: table-caption }
ÐÑÐµÐ½Ñ Ð¿Ð¾Ð´Ñобно об алгоÑиÑÐ¼Ð°Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑазмеÑов и оÑобÑажении ÑÐ°Ð±Ð»Ð¸Ñ ÑаÑÑказÑÐ²Ð°ÐµÑ ÑÑандаÑÑ CSS 2.1 â Tables.
ÐеÑÑикалÑное ÑенÑÑиÑование Ñ table-cell
ÐнÑÑÑи ÑÑеек ÑвойÑÑво vertical-align вÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ ÑодеÑжимое по веÑÑикали.
ÐÑо можно иÑполÑзоваÑÑ Ð´Ð»Ñ ÑенÑÑиÑованиÑ:
<style>
div { border:1px solid black }
</style>
<div style="height:100px; display: table-cell; vertical-align: middle">
<div>ÐлеменÑ<br>С неизвеÑÑной<br>ÐÑÑоÑой</div>
</div>
CSS не ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð²Ð¾ÐºÑÑг table-cell бÑла ÑÑÑÑкÑÑÑа ÑаблиÑÑ: table-row и Ñ.п. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑÑо Ñакой одинокий DIV, ÑÑо допÑÑÑимо.
ÐÑи ÑÑом он ведÑÑ ÑÐµÐ±Ñ ÐºÐ°Ðº ÑÑейка TD, Ñо еÑÑÑ Ð¿Ð¾Ð´ÑÑÑаиваеÑÑÑ Ð¿Ð¾Ð´ ÑÐ°Ð·Ð¼ÐµÑ ÑодеÑжимого и ÑÐ¼ÐµÐµÑ Ð²ÐµÑÑикалÑно ÑенÑÑиÑоваÑÑ ÐµÐ³Ð¾ пÑи помоÑи vertical-align.
ÐнаÑÐµÐ½Ð¸Ñ list-item, run-in и flex
У ÑвойÑÑва display еÑÑÑ Ð¸ дÑÑгие знаÑениÑ. Ðни иÑполÑзÑÑÑÑÑ Ñеже, поÑÑÐ¾Ð¼Ñ Ð¿Ð¾ÑмоÑÑим на ниÑ
кÑаÑко:
list-item-
ÐÑÐ¾Ñ display по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑлеменÑов ÑпиÑка. Ðн добавлÑÐµÑ Ðº Ð±Ð»Ð¾ÐºÑ Ñ ÑодеÑжимÑм еÑÑ Ð¸ блок Ñ Ð½Ð¾Ð¼ÐµÑом(знаÑком) ÑпиÑка, коÑоÑÑй ÑÑилизÑеÑÑÑ ÑÑандаÑÑнÑми ÑпиÑоÑнÑми ÑвойÑÑвами:
<div style="display: list-item; list-style:inside square">ÐÑÐ½ÐºÑ 1</div> run-in-
ÐÑли поÑле
run-inидÑÑblock, Ñоrun-inÑÑановиÑÑÑ ÐµÐ³Ð¾ пеÑвÑм инлайн-ÑлеменÑом, Ñо еÑÑÑ Ð¾ÑобÑажаеÑÑÑ Ð² наÑалеblock.ÐÑли Ð²Ð°Ñ Ð±ÑаÑÐ·ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑо знаÑение, Ñо в пÑимеÑе ниже
h3, благодаÑÑdisplay:run-in, окажеÑÑÑ Ð²Ð¸Ð·ÑалÑно внÑÑÑиdiv:<h3 style="display: run-in; border:2px solid red">ÐÑо пÑÑл.</h3> <div style="border:2px solid black">ÐÑÑÐ»Ñ - оÑлиÑнÑе ÑозданиÑ, они делаÑÑ Ð¼Ñд.</div>ÐÑли же Ð²Ñ Ð²Ð¸Ð´Ð¸Ñе две ÑÑÑоки, Ñо Ð²Ð°Ñ Ð±ÑаÑÐ·ÐµÑ ÐРподдеÑживаеÑ
run-in.ÐоÑ, Ð´Ð»Ñ Ð¿ÑимеÑа, пÑавилÑнÑй ваÑÐ¸Ð°Ð½Ñ Ð¾ÑобÑажениÑ
run-in, оÑоÑмленнÑй дÑÑгим кодом:<div style="border:2px solid black"> <h3 style="display: inline; border:2px solid red">ÐÑо пÑÑл.</h3>ÐÑÑÐ»Ñ - оÑлиÑнÑе ÑозданиÑ, они делаÑÑ Ð¼Ñд. </div>ÐÑли ÑÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¾ÑлиÑаеÑÑÑ Ð¾Ñ Ñого, ÑÑо Ð²Ñ Ð²Ð¸Ð´Ð¸Ñе вÑÑе â Ð²Ð°Ñ Ð±ÑаÑÐ·ÐµÑ Ð½Ðµ поддеÑживаеÑ
run-in. Ðа Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑÑой ÑÑаÑÑи ÑолÑко IE поддеÑживалdisplay:run-in. flex-box-
Flexbox позволÑÐµÑ Ñдобно ÑпÑавлÑÑÑ Ð´Ð¾ÑеÑними и ÑодиÑелÑÑкими ÑлеменÑами на ÑÑÑаниÑе, ÑаÑÐ¿Ð¾Ð»Ð°Ð³Ð°Ñ Ð¸Ñ Ð² Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾Ð¼ поÑÑдке. ÐÑиÑиалÑÐ½Ð°Ñ ÑпеÑиÑикаÑÐ¸Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð·Ð´ÐµÑÑ: CSS Flexible Box Layout Module
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)