실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 퍼블리싱 꿀팁

이미지 아래 몇 px 여백이 생길 때, vertical-align으로 없애는 법

배너나 썸네일 박스에 이미지를 넣었는데 이미지 아래에 3~5px 정도의 빈 여백이 생겨 배경색이 비쳐 보인 적 있으신가요?
margin과 padding을 모두 0으로 해도 사라지지 않는 이 여백은 버그가 아니라, 이미지가 글자처럼 줄 위에 놓이기 때문에 생깁니다. display: block이나 vertical-align 한 줄이면 정리됩니다.

💡 margin을 0으로 해도 왜 안 없어질까요?

img 태그는 기본값이 inline입니다. 브라우저는 이미지를 한 글자처럼 취급해 글자의 기준선(baseline)에 맞춰 세우는데, 기준선 아래에는 g, y, p 같은 글자의 꼬리가 내려올 자리가 항상 비어 있습니다. 이미지 아래 여백의 정체가 바로 그 자리입니다. 그래서 글꼴 크기나 line-height가 크면 여백도 함께 커집니다.

1. 단독으로 쓰는 이미지는 display: block

메인 배너, 상품 썸네일, 카드 이미지처럼 혼자 한 줄을 차지하는 이미지라면 display: block이 가장 확실합니다. 줄 위에 놓이지 않으니 글자 꼬리 공간도 생기지 않습니다. 반응형 대응을 위해 max-width: 100%와 height: auto를 함께 두는 것을 권합니다.

/* 원인 : img는 글자처럼 기준선(baseline)에 놓입니다 */
.banner img {
  display: block;   /* 줄 위에 놓이지 않으니 여백 사라짐 */
  max-width: 100%;
  height: auto;
}

이미지를 가운데 정렬하던 text-align: center는 block이 되면 더 이상 먹히지 않습니다. 이때는 margin: 0 auto로 바꿔 주세요.

2. 글자 옆 아이콘은 vertical-align

버튼 안의 작은 아이콘처럼 글자와 같은 줄에 있어야 하는 이미지를 block으로 바꾸면 줄이 바뀌어 버립니다. 이럴 때는 기준선 대신 다른 위치에 맞추도록 vertical-align을 바꿉니다. baseline만 아니면 여백은 생기지 않고, 글자와의 높이 맞춤은 middle이 가장 무난합니다.

/* 글자와 같은 줄에 있어야 하는 아이콘은 */
.btn img {
  vertical-align: middle; /* 또는 top, bottom */
}

3. 리뉴얼 작업이라면 기본값으로

페이지마다 하나씩 고치기보다 공통 CSS에 기본값으로 넣어 두면 이후에 추가되는 이미지까지 한 번에 해결됩니다. 실제로 오래된 사이트를 리뉴얼할 때 게시판 썸네일, 배너, 푸터 로고 아래 여백이 한꺼번에 정리되는 경우가 많습니다.

/* 사이트 전체 기본값으로 넣어 두는 방법 */
img, video, svg {
  vertical-align: middle;
}
  • flex나 grid 컨테이너의 바로 아래 자식인 이미지는 블록처럼 다뤄지므로 이 여백이 생기지 않습니다.
  • 부모에 font-size: 0이나 line-height: 0을 주는 방법도 있지만, 안에 글자가 들어가면 함께 사라지니 권하지 않습니다.
  • a 태그로 감싼 이미지는 a가 아니라 img에 적용해야 합니다.

"작은 틈 하나가 화면 전체의 완성도를 좌우합니다."

나눔웹은 퍼블리싱 검수 때 배너와 썸네일 경계를 하나씩 확인해,
의도하지 않은 여백 없이 디자인 그대로 보이도록 마무리합니다.


List of Articles
번호 분류 제목 글쓴이
18 퍼블리싱 CSS 컨테이너 쿼리 쓰는 법, 화면이 아니라 카드 폭에 맞춰 반응하기 나눔웹
17 퍼블리싱 CSS :has() 선택자 활용법, 자식 상태에 따라 부모 박스 스타일 바꾸기 나눔웹
16 퍼블리싱 제목 줄바꿈이 어색할 때, text-wrap: balance로 한 단어만 남는 문제 정리 나눔웹
15 퍼블리싱 모바일에서 표(table)가 깨질 때, 가로 스크롤로 감싸거나 카드형으로 바꾸는 법 나눔웹
14 퍼블리싱 카드 목록 반응형 정렬, 미디어쿼리 대신 grid auto-fill과 minmax로 나눔웹
13 퍼블리싱 모달 팝업 만들기, dialog 태그로 ESC 닫기와 배경 클릭 닫기까지 처리하는 법 나눔웹
12 퍼블리싱 긴 URL·이메일 줄바꿈이 안 되고 박스를 뚫을 때, overflow-wrap 쓰는 법 나눔웹
11 퍼블리싱 z-index 올려도 메뉴가 가려질 때, 쌓임 맥락(stacking context) 확인법 나눔웹
» 퍼블리싱 이미지 아래 몇 px 여백이 생길 때, vertical-align으로 없애는 법 나눔웹
9 퍼블리싱 position: sticky가 안 먹힐 때, 부모 overflow부터 확인해야 하는 이유 나눔웹
8 퍼블리싱 썸네일 이미지 찌그러짐, object-fit과 aspect-ratio로 비율 맞추는 법 나눔웹
7 퍼블리싱 flex 레이아웃이 모바일에서 옆으로 삐져나올 때, min-width: 0이 필요한 이유 나눔웹
6 퍼블리싱 촌스러운 '파일 선택' 버튼, 복잡한 꼼수 없이 예쁘게 디자인하기 나눔웹
5 퍼블리싱 수십 줄의 모바일 반응형 코드, 단 '1줄'로 끝내는 마법 (clamp) 나눔웹
4 퍼블리싱 무거운 플러그인 NO! 넷플릭스처럼 쫀득한 '가로 스와이프' CSS로 뚝딱 만들기 나눔웹
3 퍼블리싱 지저분한 모바일 스크롤바, 기능은 남기고 쏙 숨기는 마법의 CSS 나눔웹
2 퍼블리싱 스마트폰에서 로고가 흐리게 보인다고요? 'SVG' 포맷이 정답입니다. 나눔웹
1 퍼블리싱 CSS 변수로 유지보수와 테마 기능을 한 번에! (CSS Custom Properties) 나눔웹
Board Pagination Prev 1 Next
/ 1
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4