URI данных во встроенном объявлении шрифта (@font-face) разрывает IE

у меня есть файл CSS с @font-face объявление, которое встраивает файл шрифта через URI данных:

@font-face {
    font-family: 'Custom-Font';
    src: url('eot/font.eot');
    src: url('eot/font.eot?#iefix') format('embedded-opentype'),
        /* ugly FF same-Origin workaround... */
        url("data:application/octet-stream;base64,d09GRgABAAAAA ... ") format('woff'),
        url('ttf/font.ttf') format('truetype'),
        url('svg/font.svg#Custom-Font') format('svg');
    }

встраивание шрифта с URI данных приводит к тому, что IE .woff file), IE загрузит шрифт.

как насчет этого CSS путает IE?

Справочная информация: у меня есть страница, которая загружает встроенные шрифты из другого домена (CDN). К Сожалению, Mozilla требуется заголовок CORS (Access-Control-Allow-Origin) на встроенных шрифтах, обслуживаемых из разных доменов (an сообщил CORS и ужасная идея на мой взгляд). По причинам, не зависящим от меня (бюрократия), я не могу получить заголовок CORS, отправленный в файлы шрифтов, поэтому я застрял с неоптимальной ситуацией встраивания файла шрифта в файл CSS через URI данных.

2 ответов


на максимальная длина URL-адреса вероятно, был превышен.
Помните, что старые версии IE добавляет все между ? и последний '); (включая URI данных).
Поэтому в вашем случае решением было бы использовать другой метод (например, Mo' Bulletproofer).


У меня была та же проблема. Перемещение встроенного шрифта в другое объявление сработало для меня.

@font-face {
    /* Non-FF */
    font-family: 'Custom-Font';
    src: url('eot/font.eot');
    src: url('eot/font.eot?#iefix') format('embedded-opentype'),
        url('svg/font.svg#Custom-Font') format('svg');
}
@font-face {
    /* FF same-Origin workaround... */
    font-family: 'Custom-Font';
    src: url(data:font/truetype;charset=utf-8;base64,d09GRgABAAAAA...) format('truetype');
}