Разделы
Теги | RSS © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2
» » font-face

@font-face любой шрифт на сайте без js


Как-то раз я попал на сайт http://greenonion.in/ и приглянулись мне необычные шрифты. Попробовал выделить они еще и текстовые!

Посмотрел исходник явы нет. Полез в CSS, нашел там это:
@font-face {
    font-family: 'MadeinChinaRegular';
    src: url('madec___-webfont.eot');
    src: local('O'), url('madec___-webfont.woff') format('woff'), url('madec___-webfont.ttf') format('truetype'), url('madec___-webfont.svg#webfont0oKtehey') format('svg');
    font-weight: normal;
    font-style: normal;
}


Для меня это было в новинку. Чего я только не использовал для изменения стандартных шрифтов но такое как указано выше, никогда. Стало любопытно.

И тут я открыл глаза.

CSS-правила @font-face — это способ прицеплять шрифты TrueType и OpenType!

Начиная с Firefox 3.5, Google Chrome 2, Opera 10 и Safari 3.1 стало возможным использовать в этих браузерах CSS-правило @font-face. На данный момент эти браузеры обрабатывают любой шрифт форматов OTF и TTF без необходимости конвертации в защищённый формат EOT. Это существенное отличие от Internet Explorer, который поддерживает использование шрифтов только в формате EOT.

Пример внедрения и использования шрифта
 /* только для Internet Explorer 4+ */
@font-face {
  font-family: EuroSansProLig;
  src: url(EuroSansProLig.eot);
}

/* далее для всех остальных браузеров */
@font-face {
  font-family: Graublau Sans Web;
  src: local("Graublau Sans Web"),
       local("GraublauSansWeb"),
       url(GraublauWeb.otf) format("opentype");
}

body {
  font-family: Graublau Sans Web, EuroSansProLig,
  Arial, sans-serif;
}



Свойство local проверяет наличие шрифта на компьютере пользователя, и если шрифт не обнаружен, то он подгружается с сервера. Свойство format указывает формат шрифта (“truetype”, “opentype”,”truetype-aat”, “embedded-opentype” и “svg”). Если шрифты Graublau Sans Web и Euro Sans Pro отсутствуют, то для body будет использоваться Arial или любой рубленый шрифт по умолчанию.

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

Таким образом к предыдущему примеру добавляется следующий CSS:
/* только для Internet Explorer */
@font-face {
  font-family: EuroSansProLigBold;
  src: url(EuroSansProLigBold.eot);
}

/* далее для всех остальных браузеров */
@font-face {
  font-family: Graublau Sans Web Bold;
  src: local("Graublau Sans Web Bold"),
       local("GraublauSansWebBold"),
       url(GraublauWebBold.otf) format("opentype");
}

p {
  font-family: Graublau Sans Web Bold, EuroSansProLigBold,
  Arial, sans-serif;
  font-weight: bold;
}


Прицепление шрифтов в Internet Explorer

Прицепление шрифтов давно возможно в Internet Explorer, но только шрифтов в собственническом формате шрифта EOT. Есть единственный способ создания EOT-шрифтов — воспользоваться майкрософтовским инструментом WEFT, доступным только на Windows. Только шрифты TrueType и OpenType TT могут быть преобразованы в формат EOT, а шрифты OpenType PS (.otf) использоваться не могут.

Во правилах @font-face браузер Internet Explorer воспринимает только дескрипторы font-family и src, так что каждое семейство может содержать только одно начертание. Он не понимает указания format() и проигнорирует любое правило @font-face, содержащее такие указания. Это поведение можно использовать, чтобы задействовать прицепление шрифта кросс-платформенно:

/* Определение шрифта для Internet Explorer */
/* (*должно* стоять первым) */
@font-face {
  font-family: Gentium;
  src: url(Gentium.eot) /* нельзя использовать format() */;
}

/* Определение шрифта для других браузеров */
@font-face {
  font-family: Gentium;
  src: url(Gentium.ttf) format("opentype");
}


ПС: сайт посвещен типографики http://typeinspire.com, вдохновляйтесь -)
Вверх