Почему бы не определить шрифт или шрифт в шрифте @font-face, Font Squirrel?

Когда мы определяем стили @font-face, мы можем определить, являются ли ссылочные файлы выделенными жирным шрифтом, курсивом или полужирным шрифтом курсивом шрифта, как описано в этом вопросе SO:

Как добавить несколько файлов шрифтов для одного и того же шрифта?

Пример:

@font-face {
    font-family: 'FontinSans';
    src: local('☺'), url('fontin_sans_regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'FontinSans';
    src: local('☺'), url('fontin_sans_bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
}

Однако Font Squirrel не создает @font-face комплекты таким образом. Вместо этого они делают что-то вроде этого:

@font-face {
    font-family: 'FontinSans';
    src: local('☺'), url('fontin_sans_regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'FontinSansBold';
    src: local('☺'), url('fontin_sans_bold.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

Это означает, что в наших файлах CSS мы должны делать такие вещи:

h2 {
    font-family: 'FontinSansBold', Verdana, sans-serif;
    font-weight: normal;
}

Почему Font Squirrel не использует выражения font-weight и font-style для выделения жирных и курсивных вариантов? Зачем использовать отдельное семейство шрифтов? Знают ли они что-то о (отсутствии) поддержки этой функции в каком-то браузере?

Ответы

Ответ 1

По умолчанию, Font-Squirrel делает это, чтобы увеличить поддержку с помощью пользовательских агентов, которые не соответствуют спецификации (те, которые игнорируют font-weight и font-style).

Если вам не нравятся эти устаревшие пользовательские агенты, вы можете включить опцию "Связывание стилей", которая доступна в разделе эксперта генератора набора @font-face. Обратите внимание, что IE8 и ниже игнорируют нумерованные значения font-weight и поддерживают только normal и bold (и соответствующие значения веса 400, 700).

Ответ 2

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

Ответ 3

Кажется, Internet Explorer 8 может быть одним из тех "старых" пользовательских агентов, который не поддерживает шрифт и шрифт

Я пытаюсь сделать полужирный/курсив/bolditalic с использованием шрифта @font-face и font-family.

Мои попытки до сих пор ничего не дали. Вот страница, демонстрирующая проблему.

http://clearimageonline.com/apps/playground/fonts/test_IE.html

Кто-нибудь здесь столкнулся с этим и имеет решение, которое работает с IE8?


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

Вот предлагаемое обходное решение (очень уродливое обходное решение)....

http://clearimageonline.com/apps/playground/fonts/proposed_IE.html

Эти тестовые страницы предназначены только для Internet Explorer. Этот тест ограничен IE. Функция Cross Browser будет очевидной частью окончательного решения.

Ответ 4

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

Если вас беспокоят пользователи IE8, вы можете использовать условный css.