수색…


통사론

  • 상자 크기 : 매개 변수 ;

매개 변수

매개 변수 세부 묘사
content-box 요소의 너비와 높이에는 내용 영역 만 포함됩니다.
padding-box 요소의 너비와 높이에는 내용과 패딩이 포함됩니다.
border-box 요소의 너비와 높이에는 내용, 채우기 및 테두리가 포함됩니다.
initial 박스 모델을 디폴트 상태로 설정합니다.
inherit 부모 요소의 상자 모델을 상속합니다.

비고

패딩 상자 정보

이 값은 Firefox 에서만 구현되었으므로 사용해서는 안됩니다. Firefox 버전 50.0에서 제거되었습니다.

Box Model이란 무엇입니까?

가장자리

브라우저는 HTML 문서의 각 요소에 대해 사각형을 만듭니다. 상자 모델은이 직사각형을 만들기 위해 채우기, 테두리 및 여백을 내용에 추가하는 방법을 설명합니다.

CSS 박스 모델

CSS2.2 작업 초안의 다이어그램

네 영역 각각의 둘레를 가장자리 라고합니다. 각 모서리는 상자를 정의합니다 .

  • 가장 안쪽의 사각형은 내용 상자 입니다. 이 폭과 높이는 요소의 렌더링 된 내용 (텍스트, 이미지 및 가질 수있는 모든 자식 요소)에 따라 다릅니다.
  • 다음은 padding 속성으로 정의 된 패딩 상자 입니다. padding 너비가 정의되어 있지 않으면 채우기 가장자리가 내용 가장자리와 같습니다.
  • 그런 다음 border 속성으로 정의 된 테두리 상자가 있습니다. border 폭이 정의되어 있지 않은 경우, 경계의 엣지가 패딩 엣지와 동일 해집니다.
  • 가장 바깥 쪽 사각형은 margin 속성으로 정의 된 여백 상자 입니다. margin 너비가 정의되어 있지 않으면 여백 가장자리가 테두리 가장자리와 같습니다.

div {
    border: 5px solid red;
    margin: 50px;
    padding: 20px;
}

이 CSS는 모든 div 요소의 스타일을 5px 너비의 위쪽, 오른쪽, 아래쪽 및 왼쪽 테두리로 5px . 50px 의 위쪽, 오른쪽, 아래쪽 및 왼쪽 여백. 20px 의 위쪽, 오른쪽, 아래쪽 및 왼쪽 패딩이 있습니다. 콘텐츠를 무시하면 생성 된 상자는 다음과 같습니다.

위의 예제를위한 박스 모델

Chrome의 요소 스타일 패널 스크린 샷

  • 콘텐츠가 없으므로 콘텐츠 영역 (가운데 파란색 상자)에는 높이 또는 너비가 없습니다 (0px x 0px).
  • 기본적으로 패딩 상자는 콘텐츠 상자와 동일한 크기이며, 위에서 정의한 네 가장자리의 20 픽셀 너비와 padding 속성 (40 픽셀 x 40 픽셀)이 더해집니다.
  • 테두리 상자는 패딩 상자와 동일한 크기이며 위에서 정의한 5px 너비와 border 속성 (50x50 픽셀)을 더한 것입니다.
  • 마지막으로 여백 상자는 테두리 상자와 같은 크기이며 위에서 정의한 margin 속성 ( margin 속성을 사용하여 150px의 전체 크기를 150px로 지정 함)을 더한 값입니다.

이제 우리 요소를 같은 스타일의 형제로 만들 수 있습니다. 브라우저는 두 요소의 Box Model을보고 이전 요소의 내용과 관련하여 새 요소를 배치해야하는 위치를 찾습니다.

서로 옆에있는 두 개의 동일한 요소

각 요소의 내용은 150 픽셀 간격으로 구분되지만 두 요소의 상자는 서로 닿아 있습니다.

첫 번째 요소를 오른쪽 여백을 갖지 않도록 수정하면 오른쪽 여백 모서리는 오른쪽 테두리 모서리와 같은 위치에있게되고 두 요소는 다음과 같이 보입니다.

첫 번째 요소 오른쪽 마진 없음

상자 크기

paddingborder 스타일을 요소에 추가하자 마자 요소의 width / height 가 실제 너비 또는 높이를 화면에 나타내지 않으므로 기본 상자 모델 ( content-box )은 반 직관적 일 수 있습니다.

다음 예제는 content-box 잠재적 인 문제점을 보여줍니다.

textarea {
    width: 100%;
    padding: 3px;
    box-sizing: content-box; /* default value */
}

패딩이 텍스트 영역의 너비에 추가되므로 결과 요소는 100 %보다 넓은 텍스트 영역입니다.

다행히도 CSS는 요소의 box-sizing 속성을 사용하여 상자 모델을 변경할 수있게 해줍니다. 사용 가능한 속성에는 세 가지 값이 있습니다.

  • content-box : 공통 상자 모델 - 너비와 높이에만 패딩 또는 경계선이 아닌 내용이 포함됩니다.

  • padding-box : 너비와 높이에는 내용과 채우기가 포함되지만 테두리는 포함하지 않습니다.

  • border-box : 너비와 높이에는 내용, 채우기 및 border-box 포함됩니다.

여기에 이미지 설명을 입력하십시오.

위의 textarea 문제를 해결하려면 box-sizing 속성을 padding-box 또는 border-box 변경할 수 있습니다. border-box 가 가장 일반적으로 사용됩니다.

textarea {
    width: 100%;
    padding: 3px;
    box-sizing: border-box;
}

특정 상자 모델을 페이지의 모든 요소에 적용하려면 다음 스 니펫을 사용하십시오.

html {
    box-sizing: border-box;
}

*, *:before, *:after {
    box-sizing: inherit;
}

이 코딩 box-sizing:border-box; * 직접 적용되지 않으므로 개별 요소에서이 속성을 쉽게 덮어 쓸 수 있습니다.



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