홈페이지 » 코딩 » CSS3 상자 크기로보기

    CSS3 상자 크기로보기

    이 기사는 "HTML5 / CSS3 자습서 시리즈" - 당신을 더 나은 디자이너 및 / 또는 개발자로 만드는 데 전념하는. 여기를 클릭하십시오. 같은 시리즈의 기사 더보기.

    오래 전에, 우리가 상자 웹 페이지에서 div, 우리가 지정한 100px 너비와 높이 모두에 대해 ...에 대한 10px 그리고 대략의 경계 10px 게다가.

     div width : 100px; 높이 : 100px; 패딩 : 10px; 국경 : 10px 고체 #eaeaea;  

    브라우저는 상자의 크기를 140px로 확장합니다. 총 너비 / 높이의 140px는 그리고 국경 다음과 같이; 100px [너비 / 높이] + (2 x 10 픽셀 [패딩]) + (2 x 10 픽셀 [테두리]).

    그러나 때로는이 결과는 우리가 기대하는 바가 아닙니다. 때로는 상자가 항상 있어야합니다. 100px 추가 된 패딩이나 테두리에 관계없이.

    웹 페이지 레이아웃을 만들 때 이와 같은 반복적 인 문제를 극복하기 위해 CSS3 상자 크기 속성을 제어하는 ​​속성 CSS 상자 모델 브라우저에서 작동해야합니다..

    상자 크기 사용

    그만큼 상자 크기 속성에는 두 가지 값 옵션이 있습니다. 내용 상자; 이 값을 사용할 때 상자 모델은 위에서 설명한대로 동작합니다.

    그리고 두 번째 것은 국경 상자, 상자의 크기가 계산됩니다 지정된 콘텐츠의 크기를 빼서 패딩과 테두리가 추가되었습니다..

     div width : 100px; 높이 : 100px; 패딩 : 10px; 국경 : 10px 고체 #eaeaea; 박스 크기 : border-box; -moz-box-sizing : 테두리 상자; / * Firefox 1-3 * / -webkit-box-sizing : border-box; / * 사파리 * / 

    예를 들어 위에서 설명한 것과 같은 상자 (패딩 및 테두리의 경우 100 픽셀의 정사각형)를 사용하면 콘텐츠의 크기가 60px, 상자의 전체 크기는 남아 있습니다. 100px, 여기에서 뺄셈의 방정식은 다음과 같이 설명 할 수 있습니다. 100px [너비 / 높이] - ((2 x 10px [padding]) + (2 x 10px [border])).

    • 데모
    • 소스 다운로드

    브라우저 지원

    그만큼 상자 크기 재산은이다 모든 브라우저에서 지원됨; Firefox 3.6 이상, Safari 3, Opera 8.5 이상 및 Internet Explorer 8 이상.

    따라서 대부분의 방문자가 Internet Explorer 버전 8 이하를 사용하지 않는다는 것을 알고 있다면이 유용한 권장 사항을 사용할 수 있습니다 (Paul Irish에게 감사).

     * 상자 크기 : 테두리 상자; -moz-box-sizing : 테두리 상자; / * Firefox 1-3 * / -webkit-box-sizing : border-box; / * 사파리 * / 

    위의 스 니펫은 상자 크기 웹 페이지의 모든 요소에 대한 속성.

    이 섹션에서는 이것을 어떻게 활용할 수 있는지에 대한 실례를 보여 드리겠습니다. 상자 크기 재산. 아래의 HTML 마크 업을 기반으로 간단한 탐색을 만들고 링크 메뉴 5 개를 만듭니다..

      

    그런 다음 몇 가지 장식 스타일을 추가합니다. 예를 들어, 네비게이션의 에 대한 너비 수정 500px각 링크의 너비는 100 픽셀입니다., 그런 다음 목록 항목을 인라인하고 각 링크 메뉴마다 서로 다른 배경을 제공하므로 둘 사이의 차이점을 볼 수 있습니다.

     nav width : 500px; 여백 : 50 픽셀 자동 0; 높이 : 50px;  nav ul 패딩 : 0; margin : 0;  nav li float : 왼쪽;  nav a 디스플레이 : 인라인 블록; 너비 : 100px; 높이 : 100 %; 배경색 : #ccc; color : # 555; 텍스트 장식 : 없음; font-family : Arial, sans-serif; 글꼴 크기 : 12pt; 라인 높이 : 300 %; 텍스트 정렬 : 가운데;  nav a 디스플레이 : 인라인 블록; 너비 : 100px; 높이 : 100 %; color : # 555; 텍스트 장식 : 없음; font-family : Arial, sans-serif;  nav li : nth-child (1) a 배경색 : # E9E9E9; border-left : 0;  nav li : nth-child (2) a 배경색 : # E4E4E4;  nav li : nth-child (3) a 배경색 : #DFDFDF;  nav li : nth-child (4) a 배경색 : # D9D9D9;  nav li : nth-child (5) a 배경색 : # D4D4D4; border-right : 0;  

    이 시점에서 우리의 탐색은 정상적으로 보입니다..

    그러나 링크 메뉴에 왼쪽 또는 오른쪽 테두리를 추가 할 때 문제가 발생합니다..

     nav a 경계 왼쪽 : 1 픽셀 고체 #aaa; 국경 - 오른쪽 : 1px 고체 # f3f3f3;  

    링크 너비가 더 이상 없기 때문에 메뉴가 맨 아래로 오버플로됩니다. 100px. 지금이야 102px, 네비게이션의 전체 너비를 10px 우리가 위에서 지정한 것보다 더 길다.500px).

    이 문제를 극복하려면 상자 크기 속성을 사용합니다.

     nav a 경계 왼쪽 : 1 픽셀 고체 #aaa; 국경 - 오른쪽 : 1px 고체 # f3f3f3; 박스 크기 : border-box; -moz-box-sizing : 테두리 상자; -webkit-box-sizing : border-box;  
    • 데모
    • 소스 다운로드

    더 읽을 거리

    마지막으로, 모험을 즐기는 사람들이라면이 주제에 대해 더 깊이 파고 들기 위해 다음과 같이 몇 가지 참조 문헌을 작성했습니다.

    • CSS 상자 모델 이해하기 - Tech Republic
    • Firefox에서 박스 크기 조정 버그 - BugZilla
    • 박스 크기 FTW - Paul Irish