Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- K-Digital Credit
- 자바스크립트
- 개발자북클럽
- 모던 자바스크립트 deep dive
- javascript
- 알고리즘
- CodeStates
- js
- 비전공자를 위한
- 노마드코더
- boj
- Do it! 시리즈
- 최원영 저자
- 백준
- 제로베이스
- SQLD
- 이해할 수 있는
- nomadcoders
- 엘리스코딩
- 공부를 가장한 일기일지도
- 자격증
- 노마드 코더
- 오블완
- 노개북
- 톺아보기
- SQL 개발자
- 구름edu
- 프로그래머스
- IT 지식
- 티스토리챌린지
Archives
- Today
- Total
개발자를 희망하는 초보의 자기개발 이야기
Inline-block의 장단점 본문
반응형
Inline-block이란?
inline-block은 inline과 block 요소의 특성을 모두 가지는 속성이다. 기본적으로 inline처럼 한 줄에서 여러 개의 요소가 배치되지만, block처럼 width, height를 지정할 수 있다.
사용 예시
- 원래 <a> 태그는 inline 요소로 width와 height를 가질 수 없으나 inline-block을 적용하면 위와 같이 width와 height를 적용할 수 있다.
Inline-block의 장점
- Block처럼 크기 조절 가능
- width, height 속성을 자유롭게 지정할 수 있어 레이아웃을 쉽게 조정할 수 있다.
- Inline처럼 자연스럽게 정렬
- 여러 개의 inline-block 요소를 사용하면 한 줄에서 자연스럽게 정렬되므로 float을 사용할 필요가 없다.
- 부모 요소에 영향을 주지 않음
- float을 사용하면 부모 요소의 높이가 줄어드는 문제가 발생하지만, inline-block은 그런 문제가 없다.
- 별도의 clear 속성이 필요 없음
- float 방식과 달리 clearfix 등의 추가적인 정리가 필요하지 않다.
Inline-block의 단점
- 요소 간 공백 문제 발생
- HTML 코드에서 요소 사이에 공백(띄어쓰기, 개행 등)이 있으면 브라우저가 이를 문자로 인식하여 작은 간격이 생긴다.
- 해결 방법: font-size: 0을 부모 요소에 적용하거나, HTML 코드에서 요소 사이의 공백을 제거하는 방식이 있다.
- 세로 정렬 문제
- inline-block 요소는 기본적으로 baseline을 기준으로 정렬되기 때문에, 높이가 다른 요소가 있을 경우 정렬이 어긋날 수 있다.
- 해결 방법: vertical-align: top 또는 vertical-align: middle을 명시적으로 지정하는 것이 좋다.
- 최신 레이아웃 방식(Flexbox, Grid) 대비 부족한 기능
- inline-block을 이용한 정렬은 복잡한 레이아웃을 만들기 어렵다.
- 최신 CSS 레이아웃 방식인 Flexbox나 Grid를 사용하면 더 직관적이고 강력한 기능을 제공한다.
대안 및 해결 방법
- 4.1 공백 문제 해결
- font-size: 0을 부모 요소에 적용한 후, 자식 요소에 다시 적절한 font-size를 설정한다.
- HTML 코드에서 개행과 띄어쓰기를 제거한다.
Flexbox와 Grid 비교
속성 | Inline-block | Flexbox | Grid |
가변적인 크기 조정 | 제한적 | 유연함 | 강력함 |
정렬 및 배치 | 기본적 | 수직 및 수평 정렬 간편 | 격자 시스템 활용 |
공백 문제 | 있음 | 없음 | 없음 |
- 단순한 정렬이 필요할 경우 inline-block을 사용할 수 있지만, 복잡한 레이아웃에서는 Flexbox나 Grid를 고려하는 것이 좋다.
정리
- inline-block은 간단한 요소 정렬에 유용하며, float 없이도 여러 요소를 한 줄에 배치할 수 있다.
- 다만, 요소 간 공백 문제나 정렬 이슈가 발생할 수 있어 주의해야 한다.
- 최신 CSS 기술인 Flexbox와 Grid를 적절히 활용하면 더 효율적인 레이아웃을 구성할 수 있다.
반응형
'프론트엔드(Front-end) > CSS' 카테고리의 다른 글
글자 방향 바꾸는 css (1) | 2025.02.01 |
---|---|
Collapsing Margins 현상 (0) | 2025.01.27 |
pretendard 웹 폰트 cdn으로 바로 적용하기 (0) | 2025.01.18 |
zoom effect : 점점 커지는 효과 (0) | 2025.01.15 |
display:flex, justify-content, align-items, flex-direction (0) | 2025.01.13 |