수색…


통사론

  • margin : <위쪽 & 오른쪽 & 아래 & 왼쪽> ;
  • margin : <top> , <left & right> , <bottom> ;
  • margin : <top & bottom> , <left & right> ;
  • 여백 : <top> , <right> , <bottom> , <left> ;
  • margin-top : <top> ;
  • margin-right : <right> ;
  • margin-bottom : <bottom> ;
  • margin-left : <왼쪽> ;

매개 변수

매개 변수 세부
0 여백을 없음으로 설정
자동 각면의 값을 균등하게 설정하여 센터링에 사용됩니다.
단위 (예 : 픽셀) 유효한 단위 목록을 보려면 단위의 매개 변수 섹션을 참조하십시오.
상속하다 부모 요소로부터 여백 값을 상속받습니다.
머리 글자 초기 값으로 복원하다

비고

"여백 축소"에 대한 자세한 내용은 여기를 참조하십시오 .

주어진 측면에 여백을 적용하십시오.

방향 별 속성

CSS를 사용하면 여백을 적용 할 특정면을 지정할 수 있습니다. 이 목적을 위해 제공된 네 가지 속성은 다음과 같습니다.

  • margin-left
  • margin-right
  • margin-top
  • margin-bottom

다음 코드는 선택된 div의 왼쪽에 30 픽셀의 여백을 적용합니다. 결과보기

HTML

<div id="myDiv"></div>

CSS

#myDiv {
    margin-left: 30px;
    height: 40px;
    width: 40px;
    background-color: red;
}
매개 변수 세부
margin-left 여백을 적용해야하는 방향입니다.
30px 마진의 폭입니다.

속기 속성을 사용하여 방향 지정

표준 margin 속성을 확장하여 선택한 요소의 각면에 다른 너비를 지정할 수 있습니다. 이 작업을 수행하는 구문은 다음과 같습니다.

margin: <top> <right> <bottom> <left>;

다음 예제에서는 div 상단에 제로 너비 여백을 적용하고 오른쪽에는 10 픽셀 여백, 왼쪽에는 50 픽셀 여백, 왼쪽에는 100 픽셀 여백을 적용합니다. 결과보기

HTML

<div id="myDiv"></div>

CSS

#myDiv {
    margin: 0 10px 50px 100px;
    height: 40px;
    width: 40px;
    background-color: red;
}

마진 축소

두 개의 여백이 서로 수직으로 접촉하면 붕괴됩니다. 두 마진이 수평으로 닿으면 붕괴되지 않습니다.

인접 수직 마진의 예 :

다음 스타일과 마크 업을 고려하십시오.

div{
    margin: 10px;
}
<div>
    some content
</div>
<div>
    some more content
</div>

세로 여백이 서로 겹쳐지기 때문에 10px 떨어져 있습니다. 간격은 두 여백의 합계가 아닙니다.

인접한 수평 여백의 예 :

다음 스타일과 마크 업을 고려하십시오.

span{
    margin: 10px;
}
<span>some</span><span>content</span>

가로 여백이 서로 겹치지 않으므로 20px 떨어져 있습니다. 간격은 두 여백의 합입니다.

다양한 크기로 겹침

.top{
    margin: 10px;
}
.bottom{
    margin: 15px;
}
<div class="top">
    some content
</div>
<div class="bottom">
    some more content
</div>

이러한 요소는 세로로 15 픽셀 씩 떨어져 있습니다. 여백은 최대한 많이 겹치지 만 여백이 클수록 요소 사이의 간격이 결정됩니다.

겹쳐지는 여백

.outer-top{
    margin: 10px;
}
.inner-top{
    margin: 15px;
}
.outer-bottom{
    margin: 20px;
}
.inner-bottom{
    margin: 25px;
}
<div class="outer-top">
    <div class="inner-top">
        some content
    </div>
</div>
<div class="outer-bottom">
    <div class="inner-bottom">
        some more content
    </div>
</div>

두 텍스트 사이의 간격은 어떻게됩니까? (대답을보기 위해 마우스를 가져 간다)

간격은 25 픽셀입니다. 4 개의 마진이 모두 서로 닿아 있기 때문에 붕괴되어 4 개의 마진 중 가장 큰 마진을 사용합니다.

위의 마크 업에 테두리를 추가하면 어떨까요?

div{
    border: 1px solid red;
}

두 텍스트 사이의 간격은 어떻게됩니까? (대답을보기 위해 마우스를 가져 간다)

간격은 59px입니다! 이제 외장 및 외 바닥의 여백 만이 서로 닿아 유일하게 붕괴 된 여백입니다. 나머지 여백은 테두리로 구분됩니다. 그래서 우리는 1px + 10px + 1px + 15px + 20px + 1px + 25px + 1px. (1 픽셀은 테두리입니다 ...)

부모 요소와 자식 요소 간의 여백 축소 :

HTML :

<h1>Title</h1>
<div>
  <p>Paragraph</p>
</div>

CSS

h1 {
  margin: 0;
  background: #cff;
}
div {
  margin: 50px 0 0 0;
  background: #cfc;
}
p {
  margin: 25px 0 0 0;
  background: #cf9;
}

위의 예에서 가장 큰 마진 만 적용됩니다. 단락이 h1에서 60px 위치에있을 것으로 예상했을 수 있습니다 (div 요소의 여백 - 상단이 40px이고 p의 최대 여백이 20px이므로). 마진이 함께 붕괴되어 한 마진을 형성하기 때문에 이런 일이 발생하지 않습니다.

여백을 사용하여 페이지의 요소를 가로로 가운데 맞춤

요소가 블록 이고 명시 적으로 설정된 너비 값 이있는 한 여백을 사용하여 페이지의 블록 요소를 수평으로 가운데에 배치 할 수 있습니다.

윈도우의 너비보다 낮은 너비 값을 추가하고 margin의 auto 속성은 나머지 공간을 왼쪽과 오른쪽으로 분배합니다.

#myDiv {
 width:80%;
 margin:0 auto;
}

위 예제에서 우리는 shorthand margin 선언을 사용하여 처음에는 0 을 위쪽 및 아래쪽 여백 값으로 설정하고 (이 값은 임의의 값이 될 수 있음) 브라우저가 왼쪽 및 오른쪽 여백 값에 자동으로 공간을 할당하도록 auto 를 사용합니다.

위의 예에서 #myDiv 요소는 너비가 80 %로 설정되어 남은 부분은 20 % 남았습니다. 브라우저는이 값을 나머지면에 분배합니다.

(100 % - 80 %) / 2 = 10 %

마진 속성 단순화

p {
    margin:1px;                /* 1px margin in all directions */
    
    /*equals to:*/
    
    margin:1px 1px;
    
    /*equals to:*/
    
    margin:1px 1px 1px;
    
    /*equals to:*/
    
    margin:1px 1px 1px 1px;
}

또 다른 exapmle :

p{
    margin:10px 15px;        /* 10px margin-top & bottom And 15px margin-right & left*/
    
    /*equals to:*/
    
    margin:10px 15px 10px 15px;
    
    /*equals to:*/
    
    margin:10px 15px 10px;
    /* margin left will be calculated from the margin right value (=15px) */
}

음수 여백

여백은 음수 값으로 설정할 수있는 몇 가지 CSS 속성 중 하나입니다. 이 속성은 절대 위치 지정없이 요소겹치는 데 사용할 수 있습니다.

div{
  display: inline;
}

#over{
  margin-left: -20px;
}

<div>Base div</div>
<div id="over">Overlapping div</div>

예제 1 :

margin-leftmargin-right 대한 margin의 백분율 값은 그것의 parent 요소에 비례한다고 가정하는 것은 명백하다.

.parent {
    width : 500px;
    height: 300px;
}

.child {
    width : 100px;
    height: 100px;
    margin-left: 10%;  /* (parentWidth * 10/100) => 50px */
}

그러나 margin-topmargin-bottom 이 언제 margin-bottom 있는지에 대한 것은 아닙니다. 이 두 속성은 백분율로 부모 컨테이너의 높이가 아니라 부모 컨테이너의 너비 와 관련이 있습니다.

그래서,

.parent {
    width : 500px;
    height: 300px;
}

.child {
    width : 100px;
    height: 100px;
    margin-left: 10%;  /* (parentWidth * 10/100) => 50px  */
    margin-top: 20%;   /* (parentWidth * 20/100) => 100px */
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow