티스토리 뷰

728x90

장문의 글에서는 가독성을 위해서 글 사이의 간격을 띄우기도 한다. 이때 행간을 조정한다고 하는데, line-height 속성을 이용해 이 행간을 조정할 수 있다. 

그러나 정확하게 line-height는 줄의 높이를 의미하는 것이고, 이를 이용해서 행간을 조정할 수 있는 것이다.

line-height의 속성

행간을 제어할 때 사용하는 속성이라 해서 줄 간격으로 생각해 오해하기 쉬울 수가 있다. 줄 바꿈이 되었을 때, 윗줄의 텍스트 하단과 아랫줄의 텍스트 상단까지의 간격이라고 생각할 수도 있지만, line-height로 제어되는 부분을 line-box라고도 하며 이는 타이포그래피 구조에서 배웠던 [em 박스] + [상하단의 여백]까지를 의미한다. 

line-height: normal | number | length | initial | inherit ; /* 기본 값 : normal */

< 속성 값 >

normal : 기본값으로 브라우저의 기본 속성을 따른다. 폰트에 따라 브라우저에 따라 다르지만 보통 1.2 정도로 할당되어 있다. 

length : px, em 등 고정 수치로 할당

font-size: 20px; line-height: 60px; /* font-size와 상관 없다. */

number : font-size를 기준으로 설정한 숫자만큼 배율로 적용

font-size: 20px; line-height: 3; /* line-height = 60px */

percent(%) : font-size를 기준으로 설정한 퍼센트만큼 배율로 적용

 font-size: 20px; line-height: 300%; /* line-height = 60px; */

 

line-height의 상속

number 지정과 percent 지정 모두 font-size를 기준으로 동작하기 때문에 1이나 100%를 같은 것으로 생각할 수 있지만 이것은 틀린 생각이다. 만약 line-height의 값이 자식 요소로 상속 된다면 이 둘의 계산 방식은 달라진다. 

number : 부모 요소의 숫자 값이 그대로 상속된다. 즉, 자식 요소에서도 또 한 번 자식 요소의 font-size를 기준으로 계산된 값을 가진다. 

percent(%) : 부모 요소에서 %에 의해 이미 계산된 px값이 상속된다. 

 

<body> 만 있을 경우 line-height: 40px가 똑같이 적용된다. 

body { font-size: 20px; line-height: 2; }       /* line-height = 40px; */
body { font-size: 20px; line-height: 200%; }    /* line-height = 40px; */

하지만 자식 요소로 <p>가 생길 경우 number 지정의 경우 자식 요소의 font-size: 10px에 line-height: 2가 적용되어 <p>의 경우 line-height: 20px가 적용된다. 

percent 지정의 경우 자식 요소의 font-size: 10px와 상관없이 부모 요소의 line-height: 40px가 그대로 적용된다. 

body { font-size: 20px; line-height: 2; }    /* line-height = 40px; */
p { font-size: 10px; }                       /* line-height = 20px; */


body { font-size: 20px; line-height: 200%; }    /* line-height = 40px; */
p { font-size: 10px; }                          /* line-height = 40px; */
728x90
댓글
공지사항
최근에 올라온 글