Почему IE7 требует, чтобы шрифты EOT включали глифы в нижнем регистре, когда мы используем text-transform: uppercase?

На этой неделе мы наткнулись на довольно странную ошибку в IE7 (сюрприз, сюрприз) при встраивании файла шрифта EOT с использованием @ font-face конструкция.

Чтобы сэкономить на пропускной способности, мы часто редактируем наборы символов из шрифта, который, как мы знаем, не будет использоваться на сайте. В данном конкретном случае мы использовали этот шрифт для заголовков, которые все были составлены в верхнем регистре, но отображались в верхнем регистре с помощью свойства text-transform . Логично, что мы сохранили все наши файлы шрифтов только с прописными буквами, так как мы просто не используем строчные.

Сайт отлично отображается в каждом браузере (включая IE6 и IE8), который поддерживает @ font-face , за заметным исключением IE7. IE7 отображал только первый символ каждого слова правильным шрифтом - остальные символы отображались шрифтом по умолчанию в браузере.

Почесав головы, мы наконец выяснили, что, поскольку заголовки на самом деле были написаны как регистр заголовка (и поэтому содержал символы нижнего регистра), даже несмотря на то, что свойство text-transform было развернуто и символы отображались в верхнем регистре, IE7 требовал, чтобы строчные буквы существовали в файле EOT для отображения символов верхнего регистра. (Интуитивно понятно, не так ли?)

Простым исправлением было перестроить файл EOT с глифами как в верхнем, так и в нижнем регистре, хотя символы в нижнем регистре никогда не используются.

Как я могу это исправить? (т.е. заставить IE7 отображать символы верхнего регистра без необходимости включения глифов нижнего регистра в шрифт.)

Спасибо!

6
задан Paul D. Waite 17 June 2011 в 13:11
поделиться