디자인의 대부분은 텍스트다. 글자 크기, 굵기, 간격, 정렬 — 이것들만 잘 잡아도 페이지가 훨씬 읽기 편해진다. CSS에서 텍스트를 다루는 주요 속성들을 정리한다.
body {
font-family: 'Noto Sans KR', Arial, sans-serif;
}
쉼표로 여러 폰트를 나열하면 앞에서부터 순서대로 적용 가능한 폰트를 찾는다. 마지막에는 항상 serif, sans-serif, monospace 같은 범용 폰트 패밀리를 넣어두는 것이 관례다. 앞의 폰트가 모두 없을 때 브라우저 기본 폰트를 대신 쓰게 된다.
웹 폰트를 사용하려면 <link>로 불러오거나 @font-face로 등록한다.
<!-- Google Fonts 사용 예 -->
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR&display=swap" rel="stylesheet">
p {
font-size: 16px; /* 픽셀 — 고정값 */
font-size: 1rem; /* 루트 요소(html) 기준 배수 */
font-size: 1.2em; /* 부모 요소 기준 배수 */
font-size: 120%; /* 부모 기준 퍼센트 */
}
px — 화면 픽셀 단위. 고정적이라 예측하기 쉽다rem — HTML 루트의 font-size 기준. 브라우저 기본값은 16px이라 1rem = 16pxem — 부모 요소의 font-size 기준. 중첩되면 계산이 복잡해질 수 있다반응형 디자인에서는 rem이 가장 다루기 편하다.
p {
font-weight: normal; /* 400 */
font-weight: bold; /* 700 */
font-weight: 300; /* 얇게 */
font-weight: 900; /* 아주 굵게 */
}
숫자는 100 단위로 100~900까지 사용한다. 폰트가 해당 굵기를 지원해야 실제로 적용된다.
em {
font-style: italic; /* 기울임 */
font-style: normal; /* 기본 */
}
p {
line-height: 1.6; /* 단위 없는 숫자 권장 — font-size의 1.6배 */
line-height: 24px;
line-height: 160%;
}
단위 없는 숫자(1.6)가 권장된다. 자식 요소에 상속될 때 부모의 픽셀값이 아닌 배수 자체가 상속되기 때문이다. 본문 텍스트는 1.5~1.8 정도가 읽기 편하다.
h1 {
letter-spacing: 0.05em; /* 자간 */
word-spacing: 0.2em; /* 단어 간격 */
}
p {
text-align: left; /* 왼쪽 (기본) */
text-align: right; /* 오른쪽 */
text-align: center; /* 가운데 */
text-align: justify; /* 양쪽 맞춤 */
}
a {
text-decoration: none; /* 밑줄 제거 */
text-decoration: underline; /* 밑줄 */
text-decoration: line-through; /* 취소선 */
text-decoration: overline; /* 윗줄 */
}
링크의 기본 밑줄을 없앨 때 text-decoration: none을 자주 쓴다.
h1 {
text-transform: uppercase; /* 전부 대문자 */
text-transform: lowercase; /* 전부 소문자 */
text-transform: capitalize; /* 각 단어 첫 글자 대문자 */
}
긴 텍스트가 지정된 너비를 넘어갈 때 처리 방법을 지정한다. 세 가지 속성을 함께 써야 동작한다.
.card-title {
white-space: nowrap; /* 줄바꿈 금지 */
overflow: hidden; /* 넘치는 부분 숨김 */
text-overflow: ellipsis; /* 말줄임표(...) 표시 */
}

body {
font-family: 'Noto Sans KR', sans-serif;
font-size: 16px;
line-height: 1.6;
color: #333;
}
h1 {
font-size: 2rem;
font-weight: 700;
letter-spacing: -0.02em;
}
a {
color: royalblue;
text-decoration: none;
}
텍스트 스타일은 하나하나보다 조합이 중요하다. font-size, line-height, color를 잡는 것만으로 페이지의 가독성이 크게 달라진다.