웹에서 기본 폰트가 적용되어 있지만 다른 폰트를 적용하려 할 때 사용하는 4가지의 폰트 포맷을 먼저 확인해 보자
포맷 | 특징 |
---|---|
TrueType Fonts (TTF) | 가장 일반적 대부분 브라우저 |
Open Type Fonts (OTF) | TTF기반 TTF에서 지원하지 않는 기능 사용 |
The Web Open Font Format (WOFF) | OTF와 TTF로 이루어져 있는 압축된 폰트 경량 |
The Web Open Font Format (WOFF 2.0) | 향상된 WOFF |
WOFF 2.0은 현재 기준 가장 작고 효율적인 웹 폰트 파일 형태다. css 에서 @font-face
룰을 사용할때, woff2글꼴이 TTF 같은 효율이 떨어지는 폰트보다 더 앞서서 선언되게끔 한다. 브라우저는 더 큰 파일이라도, 먼저 선언되어 있는 글꼴을 인식하여 사용하게 된다.
FOIT (Flash of Invisible Text)
브라우저가 웹 글꼴을 다운로드하기 전에 텍스트가 보이지 않는 현상
FOUT (Flash of Unstyled Text)
브라우저가 웹 글꼴을 다운로드하기 전에 텍스트가 대체 글꼴로 렌더링되는 현상
둘 모두 이상적인 상황은 아니지만, 사용자가 처음 웹사이트를 방문할 때 둘 중 하나의 현상이 발생하게 된다.
font-face
를 이용해 FOIT,FOUT 중 어떤 것을 선택할지 알려줄 수 있다.
@font-face {
font-family: 'Typefesse';
src: url('typefesse.woff2') format('woff2'),
url('typefesse.woff') format('woff');
font-display: swap;
}
속성 | 설명 |
---|---|
swap | 웹폰트가 로딩되기 전까지 fallback 폰트를 글자로 보여주는 것, fallback 폰트와 웹폰트가 비슷하지 않다면 화면전환이 크게 일어난다. |
block | 웹폰트카 로딩되기 전까지 브라우저에 텍스트를 숨기기 위해(FOIT) 사용되는 방식, 보통 3초 내에 로딩되지 않으면 브라우저는 fallback 폰트를 사용한다 |
fallback | swap과 비슷하지만 0.1초 정도 텍스트가 보이지 않는 블록이 발생하며,이후에는 fallback 폰트가 보여진다. 또 3초 이내로 다운로드 되지 않는다면, 웹폰트 다운로드와 상관없이 앞으로 계속 fallback 폰트를 보여준다. |
Optional | fallback과 비슷하지만 3초 룰이 제거된 버전 |
HTML에서 preload 마크업을 해준다. 웹사이트를 방문하면, 필요한 리소스 자원을 서버에 요청할 때 여러 자원을 동시에 요청하고 서버에서는 요청 순서에 상관없이 준비되는대로 응답을 하게 된다.
preload란 특정 리소스를 빠르게 로딩하도록 우선순위를 부여하는 것이다.
<link rel="preload">
를 html <head>
에 추가하면 된다. 가능한 head의 가장 앞자리에 설정하는 것이 좋다.
<head>
<link rel="preload" href="/assets/fonts/Gothic.woff2" as="font" type="font/woff2" crossorigin>
</head>
안녕하세요, 제로베이스 프론트엔드스쿨 멘토입니다. 작성해주신 글 잘 읽었고, 앞으로의 더 나은 블로깅을 응원하는 마음에서 작은 의견을 남기고 갑니다 :)
감사합니다!