CSS @font-face: 글꼴 정의

CSS @font-face @규칙은 텍스트를 표시할 때 사용할 사용자 지정 글꼴을 정의합니다. 글꼴 자체는 원격 서버에서 불러올 수도 있고, 사용자 컴퓨터에 설치된 것을 사용할 수도 있습니다.

구문

@font-face {
  font-family: 'Open Sans';
  src: url('/fonts/OpenSans-Regular.woff2') format('woff2'), url('/fonts/OpenSans-Regular.woff') format('woff');
}

서술자

ascent-override

글꼴의 윗선(ascent) 수치를 정의합니다.

descent-override

글꼴의 밑선(descent) 수치를 정의합니다.

font-display

글꼴을 불러오는 동안, 그리고 불러온 후에 어떻게 표시할 것인지 지정합니다.

font-family

이 글꼴이 속하는 글꼴 가족의 이름을 지정합니다.

font-stretch

font-stretch의 값입니다. 이 글꼴에서 지원하고자 하는 범위를 두 개의 값으로 지정할 수 있습니다. (font-stretch: 50% 200%)

font-style

font-style의 값입니다. 이 글꼴에서 지원하고자 하는 범위를 두 개의 값으로 지정할 수 있습니다. (font-style: oblique 20deg 50deg)

font-weight

font-weight의 값입니다. 이 글꼴에서 지원하고자 하는 범위를 두 개의 값으로 지정할 수 있습니다. (font-weight: 100 400)

font-variant

font-variant의 값입니다.

font-feature-settings

OpenType 글꼴의 고급 설정을 조정할 수 있습니다.

font-variation-settings

OpenType과 TrueType 가변 글꼴의 디자인 축(axis)을 직접 조절할 수 있습니다.

line-gap-override

글꼴의 행간 수치를 정의합니다.

src

글꼴의 데이터가 담긴 리소스를 지정합니다. 원격 글꼴 파일의 URL일 수도 있고, 사용자 컴퓨터에 저장된 글꼴의 이름일 수도 있습니다.

format() 함수로 글꼴 리소스의 형식을 나타내면 브라우저가 적합한 글꼴을 선택할 때 참고합니다.

src: url(ideal-sans-serif.woff) format('woff'), url(basic-sans-serif.ttf) format('truetype');

'woff', 'woff2', 'truetype', 'opentype', 'embedded-opentype'를 사용할 수 있습니다.

size-adjust

글꼴의 자형(glyph) 외곽선 및 이 글꼴의 여러 수치에 곱할 계수를 지정합니다. 다양한 글꼴을 같은 크기로 렌더링 하면서도 조화를 유지해야 할 때 유용합니다.

unicode-range

이 글꼴이 사용할 Unicode 코드 포인트 범위를 지정합니다.

설명

srclocal() 함수를 사용한 경우, 사용자 에이전트는 local()의 매개변수로 받은 글꼴 이름을 사용자 시스템에서 탐색합니다. 만약 일치하는 글꼴이 존재하면 그 글꼴을 사용하고, 찾을 수 없었으면 src의 다음 항목으로 넘어갑니다.

보통은 local()url()을 함께 사용해서, 사용자가 글꼴을 설치하지 않았어도 서버에서 제공하는 글꼴을 다운로드해서 사용하게 지정하는 방법이 많이 쓰입니다.

@font-face는 반드시 최상위 CSS에서만 사용할 수 있는 것은 아니고, 조건 그룹 @규칙 내부에도 배치할 수 있습니다.

글꼴의 MIME 유형

형식MIME 유형
TrueTypefont/ttf
OpenTypefont/otf
Web Open Font Formatfont/woff
Web Open Font Format 2font/woff2

참고

웹 폰트는 동일 출처 정책의 기본 통제 대상입니다. 따라서 CORS를 별도로 설정하지 않았다면 글꼴 파일을 사용하려는 페이지는 글꼴 파일과 같은 도메인에 위치해야 합니다.

@font-face를 CSS 선택자 안에서 사용할 수는 없습니다. 예를 들어, 아래 코드는 올바르지 않습니다.

.className {
  @font-face {
    font-family: MyHelvetica;
    src: local("Helvetica Neue Bold"),
         local("HelveticaNeue-Bold"),
         url(MgOpenModernaBold.ttf);
    font-weight: bold;
  }
}

예제

원격 글꼴 파일 추가하기

다음의 예제는 원격 서버에 올라간 글꼴 파일을 추가한 후 문서 전체에 그 글꼴을 적용합니다.

@font-face {
  font-family: 'Do Hyeon';
  src: url('/assets/DoHyeon-Regular.ttf') format('truetype');
}

body {
  font-family: 'Do Hyeon', sans-serif;
  font-size: 1.8em;
}
<p>배달의민족 도현체는 작도 후 아크릴판에 자를 대고 컷팅해서 만든 옛 간판을 모티브로한 서체입니다.</p>
실행 결과

불러오는 중...

로컬 글꼴 사용하기

위의 예제와 달리, 이번에는 사용자의 컴퓨터에 이미 설치된 글꼴을 추가합니다. 사용자 컴퓨터게 설치된 글꼴의 이름이 약간 다를 수도 있으므로 가능성이 높은 이름(Do HyeonDoHyeon)을 모두 지정하는 것을 볼 수 있습니다.

@font-face {
  font-family: 'Do Hyeon';
  src: local('Do Hyeon'), local('DoHyeon');
}

명세

브라우저 호환성

IEEdgeChromeSafariFirefox
41213.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
2≤371841.0
WOFF
IEEdgeChromeSafariFirefox
91265.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
54.41841.0
WOFF 2
IEEdgeChromeSafariFirefox
미지원143610*39
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
103736393.0
ascent-override
IEEdgeChromeSafariFirefox
미지원8787미지원89
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
미지원87878914.0
descent-override
IEEdgeChromeSafariFirefox
미지원8787미지원89
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
미지원87878914.0
font-display
IEEdgeChromeSafariFirefox
미지원796011.158
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
11.360605811.0
font-family
IEEdgeChromeSafariFirefox
61243.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
22.21841.0
font-feature-settings
IEEdgeChromeSafariFirefox
미지원미지원미지원미지원34*
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
미지원미지원미지원34*미지원
font-stretch
IEEdgeChromeSafariFirefox
미지원176210.162
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
10.36262626.0
font-style
IEEdgeChromeSafariFirefox
41243.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
2≤371841.0
font-variant
IEEdgeChromeSafariFirefox
41243.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
2≤371841.0
font-variation-settings
IEEdgeChromeSafariFirefox
미지원미지원미지원미지원62
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
미지원미지원미지원62미지원
font-weight
IEEdgeChromeSafariFirefox
41243.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
2≤371841.0
line-gap-override
IEEdgeChromeSafariFirefox
미지원8787미지원89
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
미지원87878914.0
size-adjust
IEEdgeChromeSafariFirefox
미지원9292미지원92*
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
미지원92929216.0
src
IEEdgeChromeSafariFirefox
61243.13.5
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
22.21841.0
format(keyword)
IEEdgeChromeSafariFirefox
미지원미지원미지원4미지원
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
5미지원미지원미지원미지원
format('*-variations')
IEEdgeChromeSafariFirefox
미지원17661162
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
116666629.0
unicode-range
IEEdgeChromeSafariFirefox
91213.136
iOS SafariAndroid WebViewAndroid ChromeAndroid FirefoxSamsung Internet
3≤3718361.0
MDN BCD에서 가져오는 데이터입니다.

마지막 업데이트:
이 페이지를 오프라인에서 볼 수 있습니다.

sorto.me

CC BY-SA 4.0

based on MDN (contributors)