2015-04-03 3 views
0

Я создаю веб-сайт, который должен использовать пользовательский шрифт через @ font-face. IE отображается только в том случае, если я использую расширение .eot; другие браузеры, только если я использую расширение .ttf.Условные комментарии не работают

Я не могу разобраться, как использовать условные комментарии для использования обоих - даже если я пробовал множество предложений в Интернете ... Ничто не работает для меня.

По сути, у меня есть:

<style> 
@font-face{ 
font-family: Square; 
src: url(/wpadmin/fonts/Square.ttf); 
} 

@font-face{ 
font-family: Square_IE; 
src: url(/wpadmin/fonts/Square.eot); 
} 

</style> 

<!--[if !IE]><!--> 
<style> 
#Title{ 
font-family:Square; 
} 
</style> 
<!--<![endif]--> 

<!--[if IE]><!--> 
<style> 
#Title{ 
font-family:Square_IE; 
} 
</style> 
<!--<![endif]--> 

шрифт отображается только правильно в IE здесь - не в других браузерах. Если я удалю оператор [if IE], он будет корректно отображаться в других браузерах.

Я пробовал множество вариаций, включая условные утверждения внутри тела html.

Что я делаю неправильно?

+0

Не уверен, но я думаю, что [если IE] часть должна быть внутри комментариев, так что другие браузеры игнорируют его –

+0

Вы не сказали, какая версия IE, но условные комментарии не работают с версии 11 – Tim

+0

Вы должны использовать '-ms-' в качестве префикса для IE css для IE. – Rajeshwar

ответ

2

Условные комментарии не работают из IE 11, но также это не стандартный подход. Вам не нужны разные имена шрифтов, вы можете просто сделать это для кроссбраузерного списка файлов шрифтов, ссылающихся на одно имя.

/* declare all the files - browser will use the best it understands */ 

@font-face { 
    font-family: 'Square'; 
    src:url('Square.eot'); 
    src:url('Square.eot?#iefix') format('embedded-opentype'), 
     url('Square.ttf') format('truetype'), 
     url('Square.woff') format('woff'), 
     url('Square.svg#Square') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 


/* now just reference the one name */ 

#Title { 
    font-family:Square; 
} 
+0

Спасибо, Тим - он не работает ни то, что он отображается корректно в IE, но не в других браузерах ... – JohnG

+0

Ah - работает сейчас - я немного подправил - спасибо. Кажется, это похоже только на одну строку src:, а не на две. – JohnG

+0

Я бы ожидал, что IE11 будет использовать шрифт TTF в любом случае. http://caniuse.com/#feat=ttf – Tim

Смежные вопросы