СвойÑÑво margin задаÑÑ Ð¾ÑÑÑÑÐ¿Ñ Ð²Ð¾ÐºÑÑг ÑлеменÑа. У него еÑÑÑ Ð½ÐµÑколÑко оÑобенноÑÑей, коÑоÑÑе Ð¼Ñ Ð·Ð´ÐµÑÑ ÑаÑÑмоÑÑим.
ÐбÑединение оÑÑÑÑпов
ÐеÑÑикалÑнÑе оÑÑÑÑÐ¿Ñ Ð¿Ð¾Ð³Ð»Ð¾ÑаÑÑ Ð´ÑÑг дÑÑга, гоÑизонÑалÑнÑе â неÑ.
ÐапÑимеÑ, Ð²Ð¾Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ñ Ð²ÐµÑÑикалÑнÑми и гоÑизонÑалÑнÑми оÑÑÑÑпами:
<body style="background: #aef">
<p style="margin:20px; background:white">
<span style="margin:20px; background:orange">ÐоÑизонÑалÑнÑй 20px</span>
â 40px â
<span style="margin:20px; background:orange">20px ÐÑÑÑÑп </span>
</p>
<p style="margin:15px; background:white">ÐеÑÑикалÑнÑй 20px</p>
</body>
РаÑÑÑоÑние по гоÑизонÑали Ð¼ÐµÐ¶Ð´Ñ ÑлеменÑами SPAN Ñавно 40px, Ñак как гоÑизонÑалÑнÑе оÑÑÑÑÐ¿Ñ Ð¿Ð¾ 20px ÑложилиÑÑ.
Ð Ð²Ð¾Ñ Ð¿Ð¾ веÑÑикали ÑаÑÑÑоÑние Ð¾Ñ SPAN до P Ñавно 20px: из двÑÑ
веÑÑикалÑнÑÑ
оÑÑÑÑпов вÑбиÑаеÑÑÑ Ð±Ð¾Ð»ÑÑий max(20px, 15px) = 20px и пÑименÑеÑÑÑ.
ÐÑÑиÑаÑелÑнÑе margin-top/left
ÐÑÑиÑаÑелÑнÑе знаÑÐµÐ½Ð¸Ñ margin-top/margin-left ÑмеÑаÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñо Ñвоего обÑÑного меÑÑа.
Ð CSS еÑÑÑ Ð´ÑÑгой ÑпоÑоб добиÑÑÑÑ Ð¿Ð¾Ñ
ожего ÑÑÑекÑа â а именно, position:relative. Ðо Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ еÑÑÑ Ð¾Ð´Ð½Ð¾ пÑинÑипиалÑное ÑазлиÑие.
ÐÑи Ñдвиге ÑеÑез margin ÑоÑедние ÑлеменÑÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑÑ Ð¾ÑвободивÑееÑÑ Ð¿ÑоÑÑÑанÑÑво, в оÑлиÑие Ð¾Ñ position: relative, пÑи коÑоÑом ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð¸Ð·ÑалÑно ÑдвигаеÑÑÑ, но меÑÑо, где он бÑл, оÑÑаÑÑÑÑ Â«Ð·Ð°Ð½ÑÑÑм».
То еÑÑÑ, ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿ÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾Ñенно ÑÑаÑÑвоваÑÑ Ð² поÑоке.
ÐÑимеÑ: вÑÐ½Ð¾Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°
ÐапÑимеÑ, еÑÑÑ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ñ Ð¸Ð½ÑоÑмаÑионнÑми блоками:
<style>
div {
border: 1px solid blue;
margin: 2em;
font: .8em/1.25 sans-serif;
}
h2 {
background: #aef;
margin: 0 0 0.8em 0;
}
</style>
<div>
<h2>ÐбÑие положениÑ</h2>
<p>ÐаÑÑоÑÑие ÐÑавила доÑожного Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ ÑÑÑанавливаÑÑ ÐµÐ´Ð¸Ð½Ñй поÑÑдок доÑожного Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° вÑей ÑеÑÑиÑоÑии РоÑÑийÑкой ФедеÑаÑии. ÐÑÑгие ноÑмаÑивнÑе акÑÑ, каÑаÑÑиеÑÑ Ð´Ð¾Ñожного движениÑ, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾ÑновÑваÑÑÑÑ Ð½Ð° ÑÑебованиÑÑ
ÐÑавил и не пÑоÑивоÑеÑиÑÑ Ð¸Ð¼.</p>
</div>
<div>
<h2>ÐбÑие обÑзанноÑÑи водиÑелей</h2>
<p>ÐодиÑÐµÐ»Ñ Ð¼ÐµÑ
аниÑеÑкого ÑÑанÑпоÑÑного ÑÑедÑÑва обÑзан имеÑÑ Ð¿Ñи Ñебе и по ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ ÑоÑÑÑдников милиÑии пеÑедаваÑÑ Ð¸Ð¼ Ð´Ð»Ñ Ð¿ÑовеÑки:</p>
<ul>
<li>водиÑелÑÑкое ÑдоÑÑовеÑение на пÑаво ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанÑпоÑÑнÑм ÑÑедÑÑвом ÑооÑвеÑÑÑвÑÑÑей каÑегоÑии;</li>
<li>...и Ñак далее...</li>
</ul>
</div>
ÐÑполÑзование оÑÑиÑаÑелÑного margin-top позволÑÐµÑ Ð²ÑнеÑÑи заголовки над блоком.
/* ввеÑÑ
ÑÑÑÑ Ð±Ð¾Ð»ÑÑе, Ñем на вÑÑоÑÑ ÑÑÑоки (1.25em) */
h2 {
margin-top: -1.3em;
}
РезÑлÑÑаÑ:
РвоÑ, ÑÑо Ð±Ñ Ð±Ñло пÑи иÑполÑзовании position:
h2 {
position: relative;
top: -1.3em;
}
РезÑлÑÑаÑ:
ÐÑи иÑполÑзовании position, в оÑлиÑие Ð¾Ñ margin, на меÑÑе заголовков, внÑÑÑи блоков, оÑÑалоÑÑ Ð¿ÑÑÑое пÑоÑÑÑанÑÑво.
ÐÑимеÑ: вÑÐ½Ð¾Ñ ÑазÑÑва
ÐÑганизÑем инÑоÑмаÑÐ¸Ñ ÑÑÑÑ Ð¿Ð¾-дÑÑгомÑ. ÐÑÑÑÑ Ð¿Ð¾Ñле каждого заголовка бÑÐ´ÐµÑ ÑазÑÑв:
<div>
<h2>Ðаголовок</h2>
<hr>
<p>ТекÑÑ Ð¢ÐµÐºÑÑ Ð¢ÐµÐºÑÑ.</p>
</div>
ÐÑÐ¸Ð¼ÐµÑ Ð´Ð¾ÐºÑменÑа Ñ Ñакими ÑазÑÑвами:
ÐÐ»Ñ ÐºÑаÑоÑÑ Ð¼Ñ Ñ
оÑим, ÑÑÐ¾Ð±Ñ ÑазÑÑв HR наÑиналÑÑ Ð»ÐµÐ²ÐµÐµ, Ñем оÑновной ÑекÑÑ. ÐÑÑиÑаÑелÑнÑй margin-left нам поможеÑ:
/*+ no-beautify */
hr.margin { margin-left: -2em; }
/* Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ */
hr.position { position: relative; left: -2em; }
РезÑлÑÑаÑ:
ÐбÑаÑиÑе внимание на ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð¼ÐµÑодами Ñдвига!
hr.marginÑнаÑала ÑдвинÑлÑÑ, а поÑом наÑиÑовалÑÑ Ð´Ð¾ конÑа блока.hr.positionÑнаÑала наÑиÑовалÑÑ, а поÑом ÑдвинÑлÑÑ â в ÑезÑлÑÑаÑе ÑпÑава оÑÑалоÑÑ Ð¿ÑÑÑое пÑоÑÑÑанÑÑво.
Уже оÑÑÑда видно, ÑÑо оÑÑиÑаÑелÑнÑе margin â иÑклÑÑиÑелÑно полезное ÑÑедÑÑво позиÑиониÑованиÑ!
ÐÑÑиÑаÑелÑнÑе margin-right/bottom
ÐÑÑиÑаÑелÑнÑе margin-right/bottom ведÑÑ ÑÐµÐ±Ñ Ð¿Ð¾-дÑÑгомÑ, Ñем margin-left/top. Ðни не ÑдвигаÑÑ ÑлеменÑ, а «ÑкоÑаÑиваÑÑ» его.
То еÑÑÑ, Ñ
оÑÑ Ñам ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° не ÑменÑÑаеÑÑÑ, но ÑледÑÑÑий ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð±ÑÐ´ÐµÑ Ð´ÑмаÑÑ, ÑÑо он менÑÑе на Ñказанное в margin-right/bottom знаÑение.
ÐапÑимеÑ, в пÑимеÑе ниже вÑоÑÐ°Ñ ÑÑÑока Ð½Ð°Ð»ÐµÐ·Ð°ÐµÑ Ð½Ð° пеÑвÑÑ:
<div style="border: 1px solid blue; margin-bottom: -0.5em">
ÐеÑвÑй
</div>
<div style="border: 1px solid red">
ÐÑоÑой div дÑмаеÑ, ÑÑо вÑÑоÑа пеÑвого на 0.5em менÑÑе
</div>
ÐÑо иÑполÑзÑÑÑ, в ÑаÑÑноÑÑи Ð´Ð»Ñ ÐºÑаÑивÑÑ Ð²Ð½Ð¾Ñок, Ñ Ð¿Ñиданием иллÑзии глÑбинÑ.
ÐапÑимеÑ:
ÐÑого
- ÐÑÑиÑаÑелÑнÑе
margin-left/topÑдвигаÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð»ÐµÐ²Ð¾-ввеÑÑ . ÐÑÑалÑнÑе ÑлеменÑÑ ÑÑо ÑÑиÑÑваÑÑ, в оÑлиÑие Ð¾Ñ Ñдвига ÑеÑезposition. - ÐÑÑиÑаÑелÑнÑе
margin-right/bottomзаÑÑавлÑÑÑ Ð´ÑÑгие ÑлеменÑÑ Ð´ÑмаÑÑ, ÑÑо блок менÑÑе по ÑазмеÑÑ ÑпÑава-внизÑ, Ñем он на Ñамом деле.
ÐÑлиÑÐ½Ð°Ñ ÑÑаÑÑÑ Ð½Ð° ÑÐµÐ¼Ñ Ð¾ÑÑиÑаÑелÑнÑÑ
margin: The Definitive Guide to Using Negative Margins
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)