Как? #Iefix решает проблему загрузки веб-шрифтов в IE6-IE8? - PullRequest
68 голосов
/ 08 ноября 2011

Множество статей в Интернете, как это: http://www.fontspring.com/blog/fixing-ie9-font-face-problems предлагают добавить ?#iefix к eot URLМне было любопытно узнать, как это решит проблему.Спасибо.

Ответы [ 4 ]

81 голосов
/ 26 декабря 2011

IE8 и старше имеют ошибку в своих парсерах для атрибута src.Поэтому, если вы включаете более одного формата шрифта в SRC, IE не может загрузить его и сообщает об ошибке 404.Вопросительный знак решает эту проблему, поскольку вводит IE в заблуждение, что остальная часть строки (другая строка src) является строкой запроса, и поэтому загружается только файл EOTДругие браузеры будут следовать спецификации и загружать только нужный тип шрифта ...Возможно, вы захотите прочитать Bulletproof @ font-face синтаксис Пола Ирриша , чтобы узнать больше о некоторых других причинах ...

20 голосов
/ 07 июня 2013

Вы можете сделать что-нибудь вместо ?#iefix: Основная цель - поставить ?#something после первого файла шрифта в URL, так как @Rexyz уже ответил.

@font-face {
font-family: 'MyWebFont';
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#FooAnything') 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 */
}
4 голосов
/ 27 июня 2018

Полностью осознавая, что это старый вопрос.

Но для тех, кто пришел сюда в поисках какой версии "того" браузера, нужен этот взлом, теперь его можно удалить, если вы не поддерживаете IE <10. </p>

Так что просто избавьтесь от него и в одной строке перечислите все шрифты всех форматов, которые вы предлагаете.

3 голосов
/ 05 июня 2013

?#iefix предназначен для того, чтобы браузер не интерпретировал любые символы после ? как строку запроса и поэтому предотвращает другую возможную ошибку сервера.

...