카테고리 없음

8-4-5. CSS 속성 : Content의 너비(width) {width: auto / px / em / %;}

김종원 2021. 8. 31. 18:15

8-4-5. CSS 속성 : Content의 너비(width)

 

 가. width 속성

 

  - Content 영역의 가로 크기인 너비를 지정하는 속성

  - '인라인 레벨 요소'를 제외한 모든 요소(블록레벨)에 적용

  - 기본값 : 0

 

 나. width 속성값의 종류

  

  고정값 단위 형태의 속성값 : px / em ...

 

  상대값 단위 형태의 속성값 : % 

 

   - 부모요소 content 영역의 width 기준값에 대한 상대적인 너비를 적용

   - 그러나, 만약 width 속성값이 %로 선언된 자식요소의 부모요소가 인라인레벨 요소이면,

     그 부모요소를 제외하고 그 자식요소로부터 가장 가까운 블록레벨의 조상요소의 width값을 기준으로 함

   - 이때 기준이 되는 부모요소의 width 값은 순수 content 영역의 width 값임(아래 다. 참조)

   - 만일 최상단까지 블록레벨 요소가 없다면, <body>를 기준으로 계산하여 너비가 적용됨

 

  auto

 

   - 브라우저에 의해 자동으로 계산한 너비를 적용

 

 다. 요소영역의 너비 계산 방법

 

  - width 속성값을 auto가 아닌 값을 특정하면, 요소 영역의 너비는 박스모델의 content, padding, border

    영역의 너비로부터 영향을 받음 

  - 즉, 요소영역의 너비 = content width값 + (padding width값 * 2) + (border width값 * 2)

 

 [코드예시]

 1  .parent{width: 300px; border: 20px;}
 2  .child{width: 50%; padding: 20px; border: 10px;}

 

 

[위 코드 중 2번 child 요소의 총 너비는?]

 210px=(부모width 300px * 자식width 50%)+(자식padding 20px * 2)+(자식border 10px * 2) 

   padding과 border의 값에 각 2씩 곱한것은, padding과 border는 content를 감싸기 때문에 그 너비
   가 좌, 우로 총 2번 적용되기 때문이고, 위와 같이 자식요소의 width 값이 %로 지정될 때, 그 부모요소의
   width 기준 값은 width 와 padding 및 border를 더한 전체 크기가 아닌, content 영역 자체의 순수
   width 값이 기준이 됨