오늘은 css 속성 중 하나인 font-family 사용법에 대해 정리해보도록 하겠습니다.
css 속성 font-family 사용법
1) font-family 속성을 사용해서 웹 페이지 내 요소들의 폰트를 지정해줄 수 있습니다.
body {
font-family: "맑은고딕";
}
2) 위와 같이 하나의 폰트를 선언할 수도 있지만, font-family에 여러 개의 폰트를 선언해줄 수도 있습니다. 브라우저에서 첫 번째 폰트를 사용할 수 없다면, 두 번째, 세 번째 등 사용 가능한 것을 사용하라는 의미입니다.
body {
font-family: "맑은고딕", "Times New Roman", serif;
}
그런데 여기서 "맑은고딕", "Times New Roman"은 특정 폰트를 지칭하지만 serif는 삐침 있는 명조계열 글꼴 모음을 의미합니다. serif, sans-serif, cursive, monospace 등을 generic-family라고 부르는데, 시스템 폰트 중에서 사용자가 의도한 스타일과 유사한 서체를 알아서 선택해서 사용하라고 할 때 사용합니다.
serif: 삐침 있는 명조계열 글꼴 모음
sans-serif: 삐침 없는 고딕계열 글꼴 모음
cursive: 손 필기체 같은 느낌의 글꼴 모음
monospace: 글자 폭과 간격이 일정한 글꼴 모음
font-family 속성을 사용할 때는 이와 같이 마지막에는 generic-family를 넣어주는 것이 안전합니다.
3) 만약 브라우저에서 기본적으로 제공하지 않는 폰트를 사용하고 싶다면 @font-face 규칙을 사용하여 커스텀 폰트를 정의하고 로드할 수 있습니다.
@font-face {
font-family: 'Mingyung';
src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/naverfont_08@1.0/Mingyung.woff') format('woff');
}
body {
font-family: "Mingyung";
}
민경 폰트의 위치를 src에 정의하고, format()으로 폰트 파일의 형식을 지정합니다. 여기서는 WOFF (Web Open Font Format) 형식을 사용하고 있습니다. 해당 폰트 명을 Mingyung이라고 명명한 후 이후에 사용할 때도 font-family: "Mingyung"으로 사용하면 됩니다.
4) 만약 @font-face로 정의한 폰트를 특정 언어에만 사용하고 싶다면 unicode-range 속성으로 컨트롤할 수 있습니다. Mingyung 폰트는 한글에만 적용하고 싶다면 아래와 같이 unicode-range 속성에 한글의 유니코드 범위를 넣어주면 됩니다.
@font-face {
font-family: 'Mingyung';
src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/naverfont_08@1.0/Mingyung.woff') format('woff');
unicode-range: U+AC00-D7A3; /* 한글 */
}
body {
font-family: "Mingyung", "Times New Roman", sans-serif;
}
그러면 결과적으로 body 내 한글은 Mingyung 폰트로 그 외 텍스트는 Times New Roman이 적용될 것이고 그것이 지원되지 않는 언어라면 sans-serif가 적용될 것입니다. 이런 방식으로 한글은 어떤 폰트, 영어는 어떤 폰트, 일본어는 어떤 폰트, 숫자는 어떤 폰트를 사용하라고 지정해주는 것이 가능합니다.
참고자료
[1] https://jigeumblog.tistory.com/39.
[2] https://github.com/necolas/normalize.css/issues/665.
[3] https://developer.mozilla.org/en-US/docs/Web/CSS/generic-family
'Dev > HTML, CSS' 카테고리의 다른 글
[css] 여러 개의 css 파일을 링크했을 때 우선순위 (0) | 2024.07.11 |
---|---|
[css] @font-face로 폰트를 등록할 때 굵기별로 지정하는 방법 (0) | 2024.07.04 |
[bootstrap] 콘텐츠 간의 gap을 다루는 gx-*, gy-*, g-* 클래스 (0) | 2024.06.23 |
[css] input의 글자색, 배경색 바꾸기 (placeholder 포함) (0) | 2023.03.03 |
[css] html 요소 포스트잇 느낌으로 디자인하기 (2) | 2022.10.30 |
Local Storage 활용하여 다크모드 지원하는 사이트 만들기 (0) | 2022.09.23 |
[html] 웹페이지에 이모지 넣는 방법 (0) | 2022.09.02 |
[css] html 요소 깜빡거리게 만들기 (2) | 2022.09.01 |