예전에 css 배우고 난 이후 제대로 공부한게 많지 않아 기본 display(inline, block, inline-block) 에 대한 이해가 부족한 것 같아 정리
※ flex 를 자주 쓰기도 하고 대강 안다고 생각하면서 제대로 짚지 않아 정리할 필요성을 느낌
1. block
설명
*block
요소는 전체 너비를 차지하고, 항상 새로운 줄에서 시작하여 레이아웃에 큰 영향을 미칩니다.
style 관련
- 기본적으로 부모 컨테이너의 전체 너비를 차지(
width: 100%
)하며 높이는 콘텐츠 크기에 맞춰(height: auto
)집니다. width
와height
속성을 사용하여 크기를 지정할 수 있습니다.margin
,padding
,border
를 모두 적용할 수 있습니다.
2. inline
설명
inline
요소는 기본적으로 텍스트와 같은 흐름을 유지하며 새로운 줄을 만들지 않습니다. (ex: <span>
, <a>
, <strong>
, <em>
)
특정 스타일이나 배치 제약 조건이 존재합니다.
style 관련
기본
- 기본적으로 요소의 너비와 높이는 콘텐츠의 크기에 따라 자동으로 결정(
width: 100%, height: auto
)됩니다. - line-height*로 줄 상자의 높이를 설정할 수 있습니다.
- 부모 요소의 라인 높이(
line-height
)와 텍스트 크기에 영향을 받습니다. inline
요소는컨텐츠 박스(content box)와 패딩(padding), 테두리(border) 로 이루어 집니다.
제한점
width
와height
속성은 무시되어block
요소처럼 크기를 지정할 수 없습니다.- 마진(margin)은 적용되지만 세로 방향의 마진(
margin-top
,margin-bottom
)은 적용되지 않습니다. inline
요소의 높이는 콘텐츠에 의해 결정되므로, 세로padding
이 요소의 높이에는 영향을 미치지 않고 적용되어 실제 콘텐츠 영역은 그대로이면서 세로padding
영역은 벗어나는 비정상적인 구조를 가집니다. (box-sizing: border-box
를 적용하더라도 해결할 수 없습니다.)
3. inline-block
설명
inline-block
요소는 inline
요소처럼 텍스트와 같은 라인에서 흐르지만, block
요소처럼 크기와 레이아웃을 지정할 수 있습니다.
inline
처럼 나란히 배치하면서도 크기나 레이아웃을 조정할 수 있는 요소, 작은 블록 단위 레이아웃에 적합(예: 버튼, 이미지, 텍스트 아이템)
style 관련
inline
요소처럼 기본적으로 요소의 너비와 높이는 콘텐츠의 크기에 따라 자동으로 결정(width: 100%, height: auto
)됩니다.inline
요소처럼 줄 바꿈 없이 텍스트 흐름 내에서 배치됩니다.block
요소처럼width
와height
속성을 사용하여 크기를 지정할 수 있습니다.block
요소처럼padding
,margin
정상적으로 사용 가능합니다.
'HTML CSS' 카테고리의 다른 글
CSS 이론 채워 넣기 - 10. flex box (0) | 2023.09.19 |
---|---|
CSS 이론 채워 넣기 - 9. 반응형 웹 디자인(Responsive Web Design) (0) | 2023.09.19 |
CSS 이론 채워 넣기 - 8. 트랜스폼(Transform) (0) | 2023.09.18 |
CSS 이론 채워 넣기 - 7. 애니메이션 (0) | 2023.09.18 |
CSS 이론 채워 넣기 - 6. 트랜지션 (transition) (0) | 2023.09.18 |