엘리먼트의 너비를 제어하기 위해 CSS의 width
속성을 사용한다. 평소에 자주 사용하는 속성이지만 종종 생각한대로 작동하지 않을 때가 있다. width
는 ➊절대값 ➋상대값 ➌키워드 크게 3가지 설정으로 구분되며, 각 설정에 따라 너비가 다르게 결정된다.
<section>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
section {
width: 200px;
height: 200px;
border: 1px solid gray;
} /* 부모 */
p {
width: 300px;
background: Khaki;
margin: 10px;
} /* 자식 */
<aside> 💡 가용 너비 : 부모 엘리먼트의 콘텐츠 박스 크기
</aside>
px
같은 절대 단위를 사용해서 width
를 지정하면 해당 엘리먼트는 항상 고정된 너비를 갖는다.section {
width: 200px;
height: 200px;
border: 1px solid gray;
} /* 부모 */
p {
width: 100%;
background: Khaki;
margin: 10px;
} /* 자식 */
p
요소에 margin: 10px
가 지정됐으므로 부모 요소를 넘치게 된다
%
퍼센트 같은 상대 단위를 사용하면 부모 요소의 크기에 비례한 너비를 갖는다p
요소의 너비는 아래처럼 계산된 후 부모 요소를 넘치게 된다.
width: 100%
: 부모 요소(section
)의 가용 너비 200px
margin: 10px
: 좌 / 우 합해서 20px
p
요소의 너비 200px(width) + 20px(margin)
> 부모 요소의 너비 200px