Как добавить на сайт нестандартный шрифт?

Есть ли способ добавить пользовательский шрифт на веб-сайт без использования изображений, Вспышка или какой-либо другой графики?

Например, я работал над свадебным сайтом и нашел много хороших шрифтов на эту тему. Но я не могу найти правильный способ добавить этот шрифт на сервер. И как мне включить этот шрифт с помощью CSS в HTML? Можно ли обойтись без графики?

С тех пор, как был задан этот вопрос, @font-face получил гораздо более широкую поддержку и рекомендован для общего использования. Вы просто должны знать, что IE требует шрифтов в формате, отличном от формата других браузеров. См. stackoverflow.com/questions/2219916/is-font-face-usable-now

David Johnstone 15.04.2010 07:27

Убедитесь, что у вас есть право распространять шрифт!

Viet 31.05.2010 07:33

Посетите typekit.com или дешевый fontsquirrel.com

bjudson 22.09.2010 06:51

связанные stackoverflow.com/questions/8050640/…

Adrien Be 27.03.2014 17:04

www.fontsquirrel.com отлично подходит для создания необходимых файлов шрифтов и создания хорошего пуленепробиваемого синтаксиса @fontface (такого же, как рекомендованный fontspring.com/blog/fixing-ie9-font-face-problems)

Adrien Be 27.03.2014 17:06
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
535
5
883 709
19
Перейти к ответу Данный вопрос помечен как решенный

Ответы 19

Или вы можете попробовать sIFR. Я знаю, что он использует Flash, но только если он доступен. Если Flash недоступен, он отображает исходный текст своим исходным шрифтом (CSS).

Я обнаружил, что самый простой способ разместить нестандартные шрифты на веб-сайте - использовать sIFR.

Он действительно предполагает использование Flash-объекта, который содержит шрифт, но он хорошо деградирует до стандартного текста / шрифта, если Flash не установлен.

Стиль задается в вашем CSS, а JavaScript устанавливает замену Flash для вашего текста.

Обновлено: (я по-прежнему рекомендую использовать изображения для нестандартных шрифтов, поскольку sIFR увеличивает время проекта и может потребовать обслуживания).

Какая ужасная идея! В моем браузере есть флеш-память, но есть и флеш-блок. На этом веб-сайте в моем браузере отображается ужасно испорченная страница. Flash должен оставаться тем, что вы используете для больших анимаций или фильмов. Слишком много вспышек очень раздражает и визуально, моя моя ...

e-satis 22.09.2008 13:17

@ e-satis: Как так? Лично я никогда не замечаю разницы между страницей, использующей sIFR, и страницей, которая не использует sIFR, за исключением тонких различий в рендеринге текста. Честно говоря, я думаю, что это отличная идея, хотя @font-face намного лучше там, где поддерживается.

Sasha Chedygov 15.04.2010 07:14

«Обновлено: (я по-прежнему рекомендую использовать изображения для нестандартных шрифтов, поскольку sIFR увеличивает время проекта и может потребовать обслуживания)». очень хорошо сказано. sIFR - действительно крутая техника, но, похоже, она требует многого, чтобы получить ТОЧНЫЙ вид, который вы хотите. Если у вас есть время изучить и освоить эту технику, я настоятельно рекомендую ее. Но если вы ищете быструю и простую технику замены шрифта, я бы использовал замену изображения или даже свойство css @ font-face.

Derek Adair 09.07.2010 20:00
Ответ принят как подходящий

Это можно сделать с помощью 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>

Это поддерживается для всех обычных браузеров, если вы используете TrueType-Fonts (TTF), Web Open Font Format (WOFF) или Embedded Opentype (EOT).

Примечание. Похоже, что тег font-face также является частью CSS3, а не только CSS2. См. css3.info/webkit-has-web-fonts-support для получения дополнительной информации.

hangy 20.09.2008 15:48

И Internet Explorer, и Firefox НЕ основаны на Webkit, так что, на мой взгляд, это бесполезное решение.

Casper 20.09.2008 17:21

Это не бесполезно, поскольку оно стандартно: чем больше вы его реализуете, тем больше вероятность того, что он будет реализован браузерами. Это не значит, что вам не следует искать другой способ компенсации, но мне кажется, что использование этого в качестве дополнения - это хорошо.

e-satis 22.09.2008 13:14

Однако Firefox 3.1 поддерживает @ font-face.

Ms2ger 26.02.2009 18:20

@brendanjerwin: обновленная версия вашей ссылки - brendanjerwin.com/development/web/2009/03/03/…

Matt Ball 21.09.2010 19:00

@brendanjerwin: обновил обновленную версию вашей ссылки -brendanjerwin.com/blog/2009/03/03/embedding-fonts

Loren 25.09.2012 04:58

@ e-satis: «Это не бесполезно, поскольку оно стандартно: чем больше вы его реализуете, тем больше вероятность того, что он будет реализован браузерами». Здесь мы сталкиваемся с чем-то вроде масштабной (философской) «дилеммы заключенного». Если Интернет в целом принимает предложенный стандарт, более вероятно, что браузеры будут его соблюдать. Однако лучшая индивидуальная оптимизация для непоследовательной поддержки часто заключается не в том, чтобы просто делать то, что было бы лучше, если бы все делали, и это даже без учета «объятия и расширения» и подобных угроз.

Christos Hayward 10.10.2012 22:37

Я добавил то же самое, но не могу добавить шрифт? или может я неправильно добавил?

Bajrang 09.04.2013 14:06

Не могли бы мы обойтись без битых ссылок и просто разместить здесь соответствующую информацию? Создайте файл .eot, загрузив MS Web Embedding Font Tool (WEFT) @ font-face {font-family: "Vineta BT"; src: url (MyServer / MyFontLocation / VINETAB0.eot); }

B H 22.11.2013 21:12

см. пуленепробиваемый стандартный синтаксис @ font-face fontspring.com/blog/fixing-ie9-font-face-problems

Adrien Be 27.03.2014 17:07

Привет, ребята, угадайте что? Уже почти 2016 год! Теперь он широко поддерживается! Ура! Рад, что я нашел этот ответ так поздно. Ха-ха.

jessica 18.12.2015 01:43

Как сделать ссылку на локальный путь?

Black 25.01.2016 14:53

@EdwardBlack Просто оставьте //.

Mr Lister 15.06.2016 21:01

Похоже, это работает только в Internet Explorer, но быстрый поиск в Google по запросу «html embed fonts» дает http://www.spoono.com/html/tutorials/tutorial.php?id=19

Если вы хотите оставаться независимым от платформы (а вам следует это делать!), Вам придется использовать изображения или просто использовать стандартный шрифт.

Техника, которую рекомендует W3C для этого, называется «встраиванием» и хорошо описана в трех статьях здесь: Встраивание шрифтов. В своих ограниченных экспериментах я обнаружил, что этот процесс подвержен ошибкам, и не смог добиться его функционирования в среде с несколькими браузерами.

Safari и Internet Explorer поддерживают правило CSS @ font-face, однако они поддерживают два разных типа встроенных шрифтов. В ближайшее время Firefox планирует поддерживать тот же тип, что и Apple. SVG может встраивать шрифты, но пока не так широко поддерживается (без плагина).

Я думаю, что наиболее портативным решением, которое я видел, является использование функции JavaScript для замены заголовков и т. д. Изображением, сгенерированным и кэшируемым на сервере с выбранным шрифтом - таким образом вы просто обновляете текст и не должны вещи в фотошопе.

Это не обязательно делать с помощью JavaScript. Я знаю, что в настоящее время многие люди любят использовать JavaScript для довольно многих вещей, но стандартный метод CSS может быть здесь более подходящим. См. sitepoint.com/article/header-images-css-xhtml

hangy 20.09.2008 15:50

Извините, если возникла путаница, техника относится не к методу замены изображения, который, как вы говорите, может быть CSS. Речь идет о генерации графики, представляющей заданную строку в определенном шрифте / стиле, на лету, на сервере, что избавляет от необходимости создавать их вручную.

zobier 22.09.2008 09:02

Если вы используете ASP.NET, очень легко сгенерировать шрифты на основе изображений без необходимости установки (как при добавлении к установленной базе шрифтов) шрифтов на сервере, используя:

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

а затем рисовать этим шрифтом на Graphics.

ну да ... А про копирование и вставку можно забыть. И масштабирование тоже в старых браузерах. Я даже не говорю о проблемах с пропускной способностью!

e-satis 22.09.2008 13:19

Да, хорошо, и в вопросе указано, что он будет использовать его для текста содержимого? Нет, это был общий вопрос, и это был общий ответ. Небольшие фрагменты текста, заголовки и т. д. Не занимают много места. Блин, возьми себя в руки!

mattlant 22.09.2008 16:36

Я провел небольшое исследование и откопал Замена динамического текста (опубликовано 15.06.2004).

В этой технике используются изображения, но кажется, что это "свободные руки". Вы пишете свой текст и позволяете нескольким автоматизированным скриптам автоматически выполнять поиск и замену на странице за вас на лету.

У него есть некоторые ограничения, но это, вероятно, один из более простых вариантов (и более совместимый с браузером), чем все остальные, которые я видел.

В статье Font-face в IE: заставить веб-шрифты работать говорится, что он работает со всеми тремя основными браузерами.

Вот образец, который у меня получился: http://brendanjerwin.com/test_font.html

Более подробное обсуждение находится в Встраивание шрифтов.

Typeface.js и Cufon - два других интересных варианта. Это компоненты JavaScript, которые отображают данные специальных шрифтов в формате JSON (которые вы можете преобразовать из форматов TrueType или OpenType на их веб-сайтах) через новый элемент <canvas> во всех новых браузерах, кроме Internet Explorer, и через VML в Internet Explorer.

Основная проблема с обоими (на данный момент) заключается в том, что выделение текста не работает или, по крайней мере, работает довольно неудобно.

Тем не менее, это очень хорошо для заголовков. Основной текст ... не знаю.

И это на удивление быстро.

Еще один интересный вариант - typekit.com Аналогичная концепция.

Zack 20.12.2009 17:40

См. Статью 50 полезных инструментов дизайна для красивой веб-типографики для альтернативных методов.

Я использовал только Cufon. Я нашел его надежным и очень простым в использовании, поэтому я придерживался его.

Typeface.js Способ JavaScript:

With typeface.js you can embed custom fonts in your web pages so you don't have to render text to images

Instead of creating images or using flash just to show your site's graphic text in the font you want, you can use typeface.js and write in plain HTML and CSS, just as if your visitors had the font installed locally.

http://typeface.neocracy.org/

Вы можете добавить несколько шрифтов через Веб-шрифты Google.

Технически шрифты размещены в Google, и вы связываете их в заголовке HTML. Затем вы можете свободно использовать их в CSS с помощью @font-face (прочитай об этом).

Например:

В разделе <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 доступно не так много шрифтов.

В июле 2014 года Google расширил шрифты и включил шрифты Google Noto, которые поддерживают большинство языков google.com/get/noto/#. Abobe поддержал эту инициативу открытого шрифта, поддерживающую все языки blog.typekit.com/2014/07/15/introduction-source-han-sans

vsingh 01.04.2015 18:07

похоже (веб-шрифты Google) не поддерживают версии шрифтов .eot, .woff и .svg. он просто поддерживает шрифты в формате .ttf!

Mahdi Jazini 04.09.2018 10:38

Если под нестандартным шрифтом вы имеете в виду нестандартный шрифт стандартного формата, вот как я это делаю, и он работает для всех браузеров, которые я проверял до сих пор:

@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. Некоторые инструменты, доступные в Интернете, могут выполнить преобразование.

Но если вы хотите прикрепить шрифт в нестандартном формате (растровые изображения и т. д.), Я не могу вам помочь.

Пример онлайн-инструмента: kirsle.net/wizards/ttf2eot.cgi Пример автономного инструмента: code.google.com/p/ttf2eot/wiki/Demo - также должна быть возможность использовать шрифты WOFF.

Wilf 22.02.2014 23:15

Также возможно использование шрифтов WOFF - пример здесь

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

Лучше всего использовать объявление CSS @ font-face, которое позволяет авторам указывать онлайн-шрифты для отображения текста на своих веб-страницах. Позволяя авторам предоставлять свои собственные шрифты, @ 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;
}

Ссылки и дополнительная литература:

В основном это то, что вам нужно знать о реализации этой функции. Если вы хотите больше исследовать эту тему, я рекомендую взглянуть на следующие ресурсы. Большая часть того, что я здесь изложил, извлечена из следующих

Чрезвычайно удобный Инструмент "Белка шрифта" может генерировать CSS, необходимый для полной поддержки браузера. Он даже позволяет загружать шрифт в любом из этих форматов, конвертирует его во все другие форматы и позволяет загружать их все. Когда дело доходит до пользовательских шрифтов, это спасает жизнь.

Jacob Stamm 08.10.2016 06:55

Что означает svgFontName? Следует ли мне изменить его на название семейства шрифтов или оставить как есть?

Gherman 19.11.2016 20:15

Если у вас есть файл с вашим шрифтом, вам нужно будет добавить другие форматы этого шрифта для других браузеров.

Для этой цели я использую генератор шрифтов, например Шрифтовая белка, он предоставляет все форматы шрифтов и свой CSS @ font-face, вам нужно только просто перетащить его в свой файл CSS.

Просто предоставьте ссылку на настоящий шрифт, как этот, и все будет хорошо.

<!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 26.05.2018 00:42

@font-face {
font-family: "CustomFont";
src: url("CustomFont.eot");
src: url("CustomFont.woff") format("woff"),
url("CustomFont.otf") format("opentype"),
url("CustomFont.svg#filename") format("svg");
}

Пожалуйста, объясните, почему / как это решает проблему. См. Как ответить

jasie 30.09.2020 08:50

Другие вопросы по теме