비표준 글꼴을 웹 사이트에 추가하는 방법은 무엇입니까?


518

이미지, Flash 또는 다른 그래픽 을 사용하지 않고 웹 사이트에 사용자 정의 글꼴을 추가하는 방법이 있습니까?

예를 들어, 나는 결혼 웹 사이트에서 일하고 있었고 그 주제에 대한 멋진 글꼴을 많이 발견했습니다. 그러나 서버에 해당 글꼴을 추가하는 올바른 방법을 찾을 수 없습니다. CSS와 함께 해당 글꼴을 HTML에 어떻게 포함합니까? 그래픽 없이도 가능합니까?


18
이 질문이 제기 된 이후 @font-face훨씬 더 널리 지원되어 일반적인 사용을 권장합니다. IE는 다른 브라우저와 다른 형식의 글꼴이 필요하다는 것을 알아야합니다. stackoverflow.com/questions/2219916/is-font-face-usable-now
David Johnstone

10
서체를 배포 할 권리가 있는지 확인하십시오!
Viet

2
방문 typekit.com를 , 또는 싼에 대한 fontsquirrel.com
bjudson


3
www.fontsquirrel.com은 필요한 글꼴 파일을 생성하고 좋은 방탄 @fontface 구문을 만드는 것이 좋습니다 (권장 fontspring.com/blog/fixing-ie9-font-face-problems 와 동일 )
Adrien Be

답변:


500

CSS를 통해 수행 할 수 있습니다.

<style type="text/css">
@font-face {
    font-family: "My Custom Font";
    src: url(http://www.example.org/mycustomfont.ttf) format("truetype");
}
p.customfont { 
    font-family: "My Custom Font", Verdana, Tahoma;
}
</style>
<p class="customfont">Hello world!</p>

그것은되는 정규 모든 브라우저에서 지원 트루 타입 - 폰트 (TTF) 또는 웹 오픈 폰트 포맷 (WOFF)를 사용합니다.


13
Internet Explorer와 Firefox는 모두 Webkit을 기반으로하지 않으므로 제 생각에는 쓸모없는 솔루션입니다.
캐스퍼

58
이 표준이기 때문에 그것은 쓸모가 아니다 : 더 당신이 그것을 구현, 더 많은 그것은 가능성이 브라우저에서 구현 될 것입니다. 그렇다고해서 보상 할 다른 방법을 찾아서는 안된다는 것을 의미하지는 않지만 이것을 보완 물로 사용하는 것이 나에게는 좋은 것 같습니다.
전자 위성

8
Firefox 3.1은 @ font-face를 지원합니다.
Ms2ger

2
@brendanjerwin : 링크의 업데이트 된 버전 -brendanjerwin.com/development/web/2009/03/03/…
Matt Ball

60
이봐, 얘들 아? 이제 거의 2016 년입니다! 이제 광범위하게 지원됩니다! 예이! 다행이 답이 늦었다. ㅋ.
jessica dec

121

Google 웹 글꼴을 통해 글꼴을 추가 할 수 있습니다 .

기술적으로 글꼴은 Google에서 호스팅되며 HTML 헤더에서 연결됩니다. 그런 다음 CSS에서 자유롭게 읽을 수 있습니다 @font-face( read about ).

예를 들면 다음과 같습니다.

에서 <head>섹션 :

 <link href=' http://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'>

그런 다음 CSS에서 :

h1 { font-family: 'Droid Sans', arial, serif; }

Smashing Magazine기사 제목에이 솔루션을 사용합니다 . 그러나 Google Font Directory 에는 지금까지 사용할 수있는 글꼴이 많지 않습니다 .


1
2014 년 7 월 Google은 글꼴을 확장했으며 대부분의 언어 google.com/get/noto/# 를 지원하는 Google Noto 글꼴을 포함 시켰습니다 . Abobe는 모든 언어를 지원하는이 공개 글꼴 이니셔티브를 지원했습니다. blog.typekit.com/2014/07/15/introducing-source-han-sans
vsingh

(Google 웹 글꼴)은 .eot 및 .woff 및 .svg 버전의 글꼴을 지원하지 않는 것 같습니다. 글꼴의 .ttf 버전 만 지원합니다!
마흐디 Jazini

77

저자는 @ font-face CSS 선언을 사용하여 작성자가 온라인 글꼴을 지정하여 웹 페이지에 텍스트를 표시 할 수 있습니다. @ font-face는 작성자가 고유 한 글꼴을 제공 할 수 있도록하여 사용자가 컴퓨터에 설치 한 제한된 수의 글꼴에 의존 할 필요가 없습니다.

다음 표를 살펴보십시오.

여기에 이미지 설명을 입력하십시오

당신이 볼 수 있듯이, 당신에 대해 주로 크로스 브라우저 호환성을 알 필요가 있다는 여러 가지 형식이있다. 모바일 장치의 시나리오는 크게 다르지 않습니다.

솔루션 :

1-전체 브라우저 호환성

이것이 지금 가장 깊은 지원을받는 방법입니다.

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff') format('woff'), /* Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

2-대부분의 브라우저

그래도 상황이 WOFF로 크게 이동 하고 있으므로 다음과 같이 벗어날 수 있습니다.

@font-face {
  font-family: 'MyWebFont';
  src: url('myfont.woff') format('woff'), /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
       url('myfont.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5, Opera 10+, Safari 3—5 */
}

3-최신 브라우저 만

아니면 그냥 WOFF.
그런 다음 다음과 같이 사용하십시오.

body {
  font-family: 'MyWebFont', Fallback, sans-serif;
}

참고 문헌 및 추가 자료 :

이 기능을 구현할 때 주로 알아야 할 사항입니다. 이 주제에 대해 더 많이 연구하고 싶다면 다음 자료를 살펴보십시오. 내가 여기에 넣은 것의 대부분은 다음에서 추출됩니다.


2
매우 편리한 Font Squirrel 도구 는 전체 브라우저 지원에 필요한 CSS를 생성 할 수 있습니다. 또한 이러한 형식 중 하나로 글꼴을 업로드하고 다른 모든 형식으로 변환 한 후 모두 다운로드 할 수 있습니다. 사용자 정의 글꼴과 관련하여 생명의 은인입니다.
Jacob Stamm

무엇 svgFontName을 의미합니까? 글꼴 패밀리 이름으로 바꾸거나 그대로 두어야합니까?
Gherman

17

비표준 글꼴로 표준 형식의 사용자 정의 글꼴을 의미하는 경우 여기에 내가하는 방법이 있으며 지금까지 확인한 모든 브라우저에서 작동합니다.

@font-face {
    font-family: TempestaSevenCondensed;
    src: url("../fonts/pf_tempesta_seven_condensed.eot") /* EOT file for IE */
}
@font-face {
    font-family: TempestaSevenCondensed;
    src: url("../fonts/pf_tempesta_seven_condensed.ttf") /* TTF file for CSS3 browsers */
}

따라서 ttf 및 eot 글꼴이 모두 필요합니다. 온라인에서 사용 가능한 일부 도구는 변환을 수행 할 수 있습니다.

그러나 비표준 형식 (비트 맵 등)으로 글꼴을 첨부하려면 도울 수 없습니다.


1
온라인 도구 예 : kirsle.net/wizards/ttf2eot.cgi 오프라인 도구 예 : code.google.com/p/ttf2eot/wiki/Demo는 - 또한 사용할 수 있어야한다 WOFF의 글꼴을.
Wilf

11

웹 사이트에서 비표준 글꼴을 사용하는 가장 쉬운 방법은 sIFR 을 사용 하는 것입니다.

글꼴이 포함 된 Flash 객체를 사용하지만 Flash가 설치되지 않은 경우 표준 텍스트 / 글꼴로 성능이 저하됩니다.

스타일은 CSS에서 설정되며 JavaScript는 텍스트의 Flash 대체를 설정합니다.

편집 : (sIFR이 프로젝트에 시간을 추가하고 유지 보수가 필요할 수 있으므로 비표준 글꼴에 이미지를 사용하는 것이 좋습니다.)


24
얼마나 끔찍한 생각입니까! 브라우저에 플래시가 있지만 플래시 블록도 있습니다. 해당 웹 사이트에서 브라우저에 끔찍한 페이지가 표시됩니다. 플래시는 큰 애니메이션이나 영화에 사용하는 무언가를 유지해야합니다. 너무 많은 플래시는 짜증나고 시각적으로 지루합니다.
e-satis

2
@ e-satis : 어떻게 요? 개인적으로, 미묘한 텍스트 렌더링 차이를 제외하고는 sIFR을 사용하는 페이지와 그렇지 않은 페이지의 차이점을 결코 알지 못합니다. 솔직히 말하면 @font-face지원되는 곳이 훨씬 낫지 만 좋은 생각이라고 생각합니다 .
Sasha Chedygov

"편집 : (sifR이 프로젝트에 시간을 추가하고 유지 보수가 필요할 수 있으므로 비표준 글꼴에 이미지를 사용하는 것이 좋습니다." 아주 잘 말했다. sIFR은 정말 멋진 기술이지만 원하는 모양을 얻으려면 많은 것이 필요합니다. 이 기술을 배우고 익힐 시간이 있다면 강력히 추천합니다. 그러나 빠르고 쉬운 글꼴 교체 기술을 찾고 있다면 이미지 대체 또는 @ font-face css 속성을 사용합니다.
Derek Adair


10

Typeface.jsCufon 은 또 다른 흥미로운 옵션입니다. Internet Explorer를 제외한 모든 최신 브라우저의 새 <canvas> 요소와 Internet Explorer의 VML 을 통해 JSON 형식의 특수 글꼴 데이터를 웹 사이트의 TrueType 또는 OpenType 형식에서 변환 할 수있는 JavaScript 구성 요소입니다 .

현재와 ​​같이 두 가지의 주요 문제는 텍스트 선택이 작동하지 않거나 최소한 어색하게 작동한다는 것입니다.

여전히 헤드 라인에는 매우 좋습니다. 본문 ... 모르겠어요.

그리고 놀랍게도 빠릅니다.


또 다른 흥미로운 옵션은 typekit.com 유사한 개념입니다.
Zack

8

또는 sIFR을 사용해보십시오 . 플래시를 사용하지만 가능한 경우에만 사용합니다. Flash를 사용할 수없는 경우 원본 텍스트를 원본 (CSS) 글꼴로 표시합니다.


4

W3C가이를 위해 권장 한 기술을 "임베딩"이라고하며 여기에 포함 된 세 가지 기사에서 설명합니다 . 글꼴 포함 . 제한된 실험 에서이 프로세스가 오류가 발생하기 쉽고 다중 브라우저 환경에서 작동하도록 제한적으로 성공했습니다.


4

Safari와 Internet Explorer는 모두 CSS @ font-face 규칙을 지원하지만 두 가지 다른 내장 글꼴 유형을 지원합니다. Firefox는 조만간 Apple과 동일한 유형을 지원할 계획입니다. SVG는 글꼴을 포함 할 수 있지만 아직 플러그인없이 널리 지원되지는 않습니다.

내가 본 가장 휴대용 솔루션은 JavaScript 함수를 사용하여 제목 등을 서버에서 생성되고 캐시 된 이미지로 선택한 글꼴로 대체하는 것입니다. 따라서 텍스트를 간단하게 업데이트 할 필요가 없습니다 포토샵에서 주위에 물건.


JavaScript로 수행 할 필요는 없습니다. 요즘 많은 사람들이 JavaScript를 몇 가지 용도로 사용하고 싶어하지만 표준 CSS 기술이 더 적합 할 수 있습니다. 참조 sitepoint.com/article/header-images-css-xhtml
hangy

혼란이 있다면 죄송합니다.이 기술은 CSS가 될 수있는 이미지 교체 방법을 말하는 것이 아닙니다. 서버에서 특정 글꼴 / 스타일로 지정된 문자열을 나타내는 그래픽을 생성하는 것입니다. 수동으로 만들 필요가 없습니다.
zobier

4

ASP.NET을 사용하는 경우 다음을 사용하여 서버에 글꼴을 실제로 설치하지 않고도 이미지 기반 글꼴을 쉽게 생성 할 수 있습니다.

PrivateFontCollection pfont = new PrivateFontCollection();
pfont.AddFontFile(filename);
FontFamily ff = pfont.Families[0];

그런 다음 해당 글꼴로 Graphics.


1
글쎄, 네 ... 그리고 당신은 복사와 붙여 넣기를 잊어 버릴 수 있습니다. 오래된 브라우저에서도 확대 / 축소됩니다. 나는 심지어 대역폭 문제에 대해서도 이야기하지 않습니다!
e-satis

2
예, 알았으며 질문은 콘텐츠 텍스트에 사용할 것이라고 지정 했습니까? 아닙니다. 일반적인 질문이었으며 일반적인 답변이었습니다. 텍스트, 헤더 등의 작은 스 니펫은 많은 대역폭을 차지하지 않습니다. esh, 그립 잡아!
mattlant


3

나는 약간의 연구를하고 동적 텍스트 대체 (2004-06-15 게시)를 파헤 쳤습니다 .

이 기술은 이미지를 사용하지만 "핸즈프리"인 것 같습니다. 텍스트를 작성하고 몇 개의 자동화 된 스크립트가 페이지에서 자동으로 찾기 및 바꾸기를 수행하도록합니다.

그것은 약간의 한계가 있지만, 내가 본 나머지 모든 것보다 쉬운 선택 (및 더 많은 브라우저 호환 가능) 중 하나 일 것입니다.


3

WOFF 글꼴을 사용하는 것도 가능합니다 - 예를 들어 여기에

@font-face {
font-family: 'Plakat Fraktur';
src: url('/resources/fonts/plakat-fraktur-black-modified.woff') format('woff');
font-weight: bold;
font-style: normal;
 }

3

이처럼 실제 글꼴에 대한 링크를 제공하기 만하면됩니다.

<!DOCTYPE html>
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Montserrat'   rel='stylesheet'>
<style>
body {
font-family: 'Montserrat';font-size: 22px;
}
</style>
</head>
<body>

<h1>Montserrat</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>


</body>
</html>

좋은 간단한 대안. 그리고 당신은 그것을 사용할 권리가 있습니다. developers.google.com/fonts/docs/getting_started
Tim Erickson

2

Typeface.js JavaScript 방식 :

typeface.js를 사용하면 웹 페이지에 사용자 정의 글꼴을 포함하여 텍스트를 이미지로 렌더링 할 필요가 없습니다.

사이트의 그래픽 텍스트를 원하는 글꼴로 표시하기 위해 이미지를 만들거나 플래시를 사용하는 대신 방문자가 글꼴을 로컬에 설치 한 것처럼 typeface.js를 사용하여 일반 HTML 및 CSS로 작성할 수 있습니다.

http://typeface.neocracy.org/



2

글꼴 파일이있는 경우 다른 브라우저에서 해당 글꼴의 형식을 추가해야합니다.

이 목적을 위해 Fontsquirrel 과 같은 글꼴 생성기를 사용하여 모든 글꼴 형식과 @ font-face CSS를 제공하므로 CSS 파일로 끌어서 놓기 만하면됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.