Статьи

Плагин FontFace jQuery

Из-за безопасности траншей браузерные войны все еще ведутся. @font-face один из самых сложных фронтов войны.

Вы привыкли нуждаться в проприетарных расширениях для использования новых свойств CSS3 — мы можем справиться с этим. Однако даже закаленные ветераны могут оказаться не готовыми к тому, сколько кода для конкретного браузера требуется для успешной реализации @font-face . Время готовиться!

Готов?

  @ font-face {
   семейство шрифтов: "BestFontEver";
   src: url ('file / path / filename.eot');
   формат src: local ('☺'), url ('file / path / filename.woff') ('woff'), формат url ('file / path / filename.ttf') ('trueetype'), url (' file / path / filename.svg # BestFontEver ') формат (' svg ');
 } 

И даже это не устанавливает никаких элементов для использования вашего нового шрифта BestFontEver ; он просто регистрирует, что вы хотите его использовать, и запрашивает у браузера источник этого нового шрифта.

Хорошей новостью является то, что после регистрации шрифт можно использовать так, как мы всегда использовали font-family . Допустим, у нас есть шрифт без засечек:

 #element, .elements { font-family: "BestFontEver", Helvetica, Arial, sans-serif; } 

Итак, почему так много вариантов при регистрации?

Подведение итогов боевых действий

  • Файлы шрифтов .eot (или Embedded OpenType) принадлежат Microsoft, поэтому если вы хотите, чтобы BestFontEver появлялся в Internet Explorer, вам потребуется версия .eot .
  • Web Open Font Format, или .woff , — самый новый солдат в конфликте. Он был разработан Mozilla и поддерживается Firefox, Chrome, Opera и IE9.
  • Затем идут шрифты TrueType с расширением .ttf , которые Apple разработала в конце 1980-х годов. Эти шрифты поддерживаются Safari, Opera, Firefox и Chrome.
  • Формат SVG? Это предусмотрено для платформ, поддерживающих SVG, таких как устройства iOS: iPhone, iPad и все, что работает с Mobile Safari.
  • И что последняя запись в src ? local('') ? Это на тот случай, если у пользователя, просматривающего вашу страницу, уже установлен шрифт с именем BestFontEver. Он защищает ваш шрифт BestFontEver, не загружая их локальный шрифт. Этот метод был разработан Полом Айришем, поэтому вы можете проверить его объяснение, почему это хорошая идея .

Твой Супер Солдат

Так, что это оставляет тебя? Линии битвы прорисованы, но туман войны не скоро исчезнет. То, что вы хотите, — это способ быстро и легко размещать шрифты @font-face на ваших страницах.

Вот тут и приходит jQuery! Мы можем использовать плагин, чтобы быть нашим пехотинцем, пока сидим в штаб-квартире и ждем, пока браузеры сразятся с ним. Тогда все, что нам нужно сделать, это предоставить объект jQuery.css() . Плагин FontFace jQuery — это отличный способ применять шрифты к сайтам, которые вы не контролируете, быстро создавать прототипы шрифтов во время проектирования, предоставлять менее опытным разработчикам больший контроль или даже — если вы выберете — для готовых к работе страниц :

  $ ("# element, .elements"). fontface ({
   fontName: "BestFontEver",
   fontFamily: ["Best Font Ever", "BestFontEver", "Helvetica, Arial, без засечек"],
   filePath: "/ _fonts /",
   fileName: "bestfontever-normal-webfont"
 }); 

Вот и все, и это длинная версия! Немного подправив плагин, мы можем уменьшить требования до следующего:

  $ ("# element, .elements"). fontface ({
   fontName: "BestFontEver",
   fileName: "bestfontever-normal-webfont"
 }); 

Вы можете безопасно удалить детали fontFamily и по-прежнему определять стек следующим образом:

  $ ("# element, .elements"). fontface ({
   fontName: "BestFontEver",
   fontStack: "Helvetica, Verdana, Arial, Sans-Serif",
   fileName: "bestfontever-normal-webfont"
 }); 

Чтобы избавиться от необходимости filePath подробности filePath , мы просто установили значение по умолчанию в плагине. Найдите объект по defaults в коде плагина:

  по умолчанию = {
   filePath: "/ _fonts /", // измените это местоположение вашего каталога шрифтов 

Вы по-прежнему можете предоставить любые одноразовые filePath вам нужны, но установка его в плагине заставляет его filePath и забывать.

Еще лучше, однако, если у вас есть шрифт, который имеет разные веса или стили, вы можете использовать их:

 $("#element, .elements").fontface({ fontName : "BestFontEver", fontWeight : "bold", fileName : "bestfontever-bold-webfont" }); $("#element em").fontface({ fontName : "BestFontEver", fontStyle : "italic", fileName : "bestfontever-italic-webfont" }); 

Возьмите плагин и попробуйте сами!

Вы можете найти отличные бесплатные @font-face -ready на таких сайтах, как http://code.google.com/webfonts/ (для шрифтов TrueType), http://webfonts.info , http: //www.fontsquirrel. com / и http://www.fontspring.com/ .

И последний совет? Если вы абсолютно уверены, что на большой части вашей аудитории будет установлен ваш шрифт, вы можете использовать его обычное имя в стеке шрифтов для загрузки их локальной версии. Это на самом деле то, что мы сделали в нашем первом примере. Использование принятого имени — Best Font Ever — в вашем стеке шрифтов перед именем, которое вы ассоциируете с загруженной версией @font-face — BestFontEver — означает, что мы по умолчанию используем локальную версию, если она доступна. Если он не установлен, мы будем продвигаться вниз по нашему стеку, пока что-нибудь не залипнет, и, будем надеяться, это будет наш @font-face .

Мы на вашей стороне

Война ужасна, но с такими союзниками, как плагин @font-face jQuery, вы выиграете войну, прежде чем узнаете об этом!