margin
margin
CSS 데모: margin 데모 버튼을 클릭해 보세요!
selector {
    margin:  <길이> | <백분율(%)> | auto
}
/* 네 측면 모두 적용 */
margin: 20px;

/* 위와 아래 측면 | 왼쪽과 오른쪽 측면 */
margin: 20px 50px; /* 20px: 위와 아래 측면, 50px: 왼쪽과 오른쪽 측면 */

/* 위 측면 | 왼쪽과 오른쪽 측면 | 아래 측면 */
margin: 0 50px 20px; /* 0: 위 측면, 50px: 왼쪽과 오른쪽 측면, 20px: 아래 측면 */

/* 위 측면 | 오른쪽 측면 | 아래 측면 | 왼쪽 측면 */ /* 시계 방향으로 */
margin: 0 10px 30px 50px; /* 0: 위 측면, 10px: 오른쪽 측면, 30px: 아래 측면, 50px: 왼쪽 측면 */

/* 전역 값 */
margin: inherit;
margin: initial;
margin: revert;
margin: revert-layer;
margin: unset;
/* 네 측면 모두 적용 */
margin: 20px;
<div class="parent">
    <div class="child">margin: 20px;</div>
</div>
.parent {
    border: 5px solid #fddd9b;
}
.child {
    background-color: lime;
    margin: 20px; /* 네 측면 모두 적용 */
}
실제 적용된 모습
/* 위와 아래 측면 | 왼쪽과 오른쪽 측면 */
margin: 20px 50px; /* 20px: 위와 아래 측면,
                      50px: 왼쪽과 오른쪽 측면 */
<div class="parent">
    <div class="child">margin: 20px 50px;</div>
</div>
.parent {
    border: 5px solid #fddd9b;
}
.child {
    background-color: lime;
    margin: 20px 50px;  /* 20px: 위와 아래 측면,
                           50px: 왼쪽과 오른쪽 측면 */
}
실제 적용된 모습
/* 위 측면 | 왼쪽과 오른쪽 측면 | 아래 측면 */
margin: 0 50px 20px; /* 0: 위 측면,
                        50px: 왼쪽과 오른쪽 측면,
                        20px: 아래 측면 */
<div class="parent">
    <div class="child">margin: 0 50px 20px;</div>
</div>
.parent {
    border: 5px solid #fddd9b;
}
.child {
    background-color: lime;
    margin: 0 50px 20px; /* 0: 위 측면,
                            50px: 왼쪽과 오른쪽 측면,
                            20px: 아래 측면 */
}
실제 적용된 모습
/* 위 측면 | 오른쪽 측면 | 아래 측면 | 왼쪽 측면 */ /* 시계 방향으로 */
margin: 0 10px 30px 50px; /* 0: 위 측면,
                             10px: 오른쪽 측면,
                             30px: 아래 측면,
                             50px: 왼쪽 측면 */
<div class="parent">
    <div class="child">margin: 0 10px 30px 50px;</div>
</div>
.parent {
    border: 5px solid #fddd9b;
}
.child {
    background-color: lime;
    margin: 0 10px 30px 50px; /* 0: 위 측면,
                                 10px: 오른쪽 측면,
                                 30px: 아래 측면,
                                 50px: 왼쪽 측면 */
}
실제 적용된 모습
<div class="container">
    <div class="box me">나</div>
    <div class="box"></div>
</div>
.container {
    display: flex;
}
.box {
    width: 100px;
    height: 150px;
    background-color: rgba(229, 232, 252, 0.6);
    border: 10px solid skyblue;
}
.box.me {
    border-color: red;
    margin: 0 -50px 0 0; /* 오른쪽 측면에 음수 값을 사용 */
}
실제 적용된 모습 인접한 오쪽의 요소와 겹친 모습을 볼 수 있습니다.
<div class="container">
    <div class="box">나</div>
</div>
.container {
    border: 5px solid #fddd9b;
}
.box {
    width: 100px;
    background: lime;
    text-align: center;
    margin: 0 0 0 auto; /* 왼쪽 측면에 auto 값을 사용 */
}
실제 적용된 모습
<div class="container">
    <div class="box">나</div>
</div>
.container {
    border: 5px solid #fddd9b;
}
.box {
    width: 100px;
    background: lime;
    text-align: center;
    margin: 0 auto; /* 왼쪽과 오른쪽 측면에 auto 값을 사용 */
}
실제 적용된 모습
<div class="box box-1">box-1</div>
<div class="box box-2">box-2</div>
.box {
    width: 100px;
    height: 100px;
    background: orange;
}
.box-1 {
    margin-bottom: 50px;
}
.box-2 {
    margin-top: 100px;
}
실제 적용된 모습
<p>부모 요소에 padding-top이나 border-top이 없을 때</p>
<div class="parent parent-1">
    <div class="child">child</div>
</div>
<p>부모 요소에 padding-top이나 border-top이 있을 때</p>
<div class="parent parent-2">
    <div class="child">child</div>
</div>
.parent-1 {
    margin-top: 30px; /* 부모 요소와 자식 요소의 '마진 상쇄(margin collapsing)'가 발생합니다. */
}
.parent-2 {
    border-top: 2px solid red;
}
.parent {
    background: silver;
    height: 200px;
}
.child {
    width: 100px;
    height: 100px;
    background: gold;
    margin-top: 50px;
}
실제 적용된 모습
<p>부모 요소에 padding-bottom이나 border-bottom이 없을 때</p>
<div class="parent parent-1">
    <div class="child">child</div>
</div>
<p>부모 요소에 padding-bottom이나 border-bottom이 있을 때</p>
<div class="parent parent-2">
    <div class="child">child</div>
</div>
.parent-1 {
    margin-bottom: 30px; /* 부모 요소와 자식 요소의 '마진 상쇄(margin collapsing)'가 발생합니다. */
}
.parent-2 {
    border-bottom: 2px solid red;
}
.parent {
    background: silver;
    height: auto;
}
.child {
    width: 100px;
    height: 100px;
    background: gold;
    margin-bottom: 50px;
}
실제 적용된 모습
<h3>h3</h3>
<h4>h4</h4>
<h5>h5</h5>
<p>p</p>
<ul>
    <li>ul</li>
</ul>
<ol>
    <li>ol</li>
</ol>
<dl>
    <dt>dl</dt>
</dl>
<dd>dd</dd>
<hr>
<figure>figure</figure>
<menu>
    <li>menu</li>
</menu>
<blockquote>blockquote</blockquote>
<fieldset>fieldset</fieldset>
실제 적용된 모습