← 전체 글로 돌아가기

웹 개발

CSS line-height 하나 바꿨을 뿐인데 글이 훨씬 읽기 편해졌다

line-height를 1.5에서 1.7로 올리는 것만으로도 긴 글을 읽을 때 눈이 덜 피로하다는 걸 직접 비교해보고 나서야 실감했다.

블로그를 새로 만들면서 본문 타이포그래피를 손봤다. 폰트를 바꾸고, 글자 크기를 키우고, 줄간격을 조정했는데 세 가지 중 체감 효과가 가장 큰 건 줄간격이었다.

기본값이 왜 부족한가

브라우저 기본 line-height는 보통 normal로 설정되는데, 이는 폰트에 따라 다르지만 대략 1.2 전후다. 제목처럼 한두 줄 텍스트에는 괜찮지만 본문 단락에 쓰면 줄이 촘촘하게 붙어 읽기 힘들어진다. 특히 한국어는 글자 자체에 상하 공간이 많이 필요해서 더 두드러진다.

/* 본문 기본 설정 */
body {
  font-size: 1rem;       /* 16px */
  line-height: 1.75;     /* 글자 크기의 1.75배 */
}

/* 긴 글 영역 */
.prose {
  line-height: 1.8;
  max-width: 68ch;       /* 한 줄에 들어오는 글자 수 제한 */
}

1.75 에서 1.8 사이가 한국어 본문에서 무난하다. 영문 본문은 1.6도 충분한 경우가 많지만, 한글은 자소 구조상 조금 더 여유가 필요하다.

단위를 단위 없는 숫자로 쓰는 이유

line-height: 28px 처럼 px로 고정하면 자식 요소가 폰트를 다른 크기로 상속받았을 때 줄간격 비율이 깨진다. 단위 없는 숫자(1.75)를 쓰면 요소의 계산된 font-size에 곱해진 값이 상속된다.

/* px 고정 — 자식 font-size가 달라도 line-height는 28px 그대로 */
.parent { font-size: 16px; line-height: 28px; }
.child  { font-size: 14px; } /* 줄간격이 상대적으로 더 커 보임 */

/* 단위 없음 — 자식도 자신의 font-size 기준으로 계산 */
.parent { font-size: 16px; line-height: 1.75; }
.child  { font-size: 14px; } /* 14 × 1.75 = 24.5px, 자연스럽게 유지됨 */

줄 길이와 함께 조정해야 효과가 있다

line-height를 아무리 높여도 한 줄이 너무 길면 읽다가 다음 줄을 찾기 어렵다. max-widthch 단위로 설정하면 폰트 크기가 바뀌어도 한 줄에 들어오는 글자 수가 유지된다. 보통 본문은 60~75ch 범위가 적당하다고 알려져 있다.

이 두 가지를 같이 조정하고 나서 긴 글을 처음부터 끝까지 읽어보면 차이가 바로 보인다. 글이 더 잘 읽힌다는 느낌은 대부분 줄간격과 줄 길이에서 온다.