Как использовать символы Unicode на веб-страницах? - PullRequest
4 голосов
/ 31 августа 2010

Я использую некоторые символы Unicode на веб-странице, которую я создаю.В целях этого примера, скажем, это тот парень: '☺'.

Насколько я понимаю, при правильной реализации CSS вы можете установить любой шрифт, который вы хотите, и если он встречается с символом, которыйотсутствует в этом шрифте, он начнет переключаться между вариантами резервного копирования семейства шрифтов, пока не найдет тот, который работает.

В свете этого у меня есть семейство шрифтов, настроенное так в css:

font-family: Tahoma, Helvetica, "Arial Unicode MS", sans-serif

Мое обоснование заключается в том, что Tahoma поставляется в комплекте с Windows.Тем не менее, я узнал в Интернете, что только некоторые версии Windows Tahoma имеют поддержку Unicode.Helvetica - это шрифт, похожий на Tahoma для Mac.«Arial Unicode MS» поставляется в комплекте с Office 2000 и выше и определенно поддерживает Unicode.San-Serif - это запасной вариант во всех случаях, который также должен поддерживать Unicode.

В большинстве случаев это работает хорошо.Однако, как это обычно бывает, Internet Explorer, похоже, разрушает мой хорошо продуманный план.Я не могу понять, что такое шаблон, так как я вижу его на одном компьютере под управлением Vista с IE8, а на другом на Windows XP с IE7, но он отлично работает на моей машине для разработки с Win7 с IE8 / IE7 Tester / IE6Tester.Я нашел утверждение на некоторых неясных веб-страницах, что в старых версиях IE он будет искать только первый шрифт, который у него есть, а затем использовать его для всего, даже если в этом шрифте отсутствует данный символ, но это не такобъясните, почему это происходит в Vista / IE8.Таким образом, мои любимые символы Unicode появляются как блоки для некоторых, но не для всех пользователей IE.

Каков рекомендуемый способ работы с символами Unicode в Интернете? Они просто не могут использоваться дляпроекты, где необходима широкая совместимость с браузерами?Стоит ли включать код специально для обработки старого IE?Есть ли какие-то другие ситуации или платформы, о которых я должен беспокоиться?

Редактировать: Обновлено с новой информацией о системах, на которых происходит сбой.

Ответы [ 3 ]

4 голосов
/ 04 сентября 2010

только некоторые версии Windows Tahoma имели поддержку Unicode

Это не совсем «поддержка Юникода». Tahoma поддерживает Unicode в той же степени, в которой он имеет таблицы поиска кодовых точек Unicode. Это не означает, что вы получаете глиф для каждого символа, определенного Unicode ... фактически почти ни один шрифт не имеет глифов для каждого символа.

Нет версия Tahoma включает в себя глиф для U + 263A White Smiling Face, поэтому ваш код является тестом возможностей отката шрифтов, чем IE (особенно IE6) плох по сравнению с другими браузерами. Более распространенный в Windows шрифт, который включает , включает U + 26A3 - простой Arial (не «Arial Unicode»), начиная с версии 3.00 (включен в WinXP).

2 голосов
/ 31 августа 2010

Вы можете использовать переопределения IE в своем файле CSS, чтобы создать другое поведение для старых версий Internet Explorer. Перерасходы # и _ перед каждым оператором, в зависимости от версии Internet Explorer.

Поставьте _ перед каждым оператором в вашем CSS для Internet Explorer 6.0 и более ранних версий. Поставьте # перед каждым утверждением в вашем CSS только для Internet Explorer

Пример:

 //Normal
    font-family: Tahoma, Helvetica, "Arial Unicode MS", sans-serif;    
    //  IE 6.0 Earlier
    _font-family: Tahoma, Helvetica, sans-serif;
    // IE Only
    #font-family: Tahoma, Helvetica, "Arial Unicode MS", sans-serif;
0 голосов
/ 09 декабря 2014

Насколько я понимаю, при правильной реализации CSS вы можете установить любой шрифт, который захотите, и если он встретится с символом, которого нет в этом шрифте, он начнет отступать через шрифт.Выбор семейной резервной копии, пока он не найдет тот, который работает.

К сожалению, это не так, как это работает в Internet Explorer, по крайней мере, в старых версиях.Эти браузеры используют только первое семейство шрифтов, доступных в системе.Один из подходов, который я иногда использую, заключается в добавлении отдельного класса CSS для символов Unicode:

<span class="unicode">[Unicode character]</span>

.unicode { font-family: "Lucida Sans Unicode", ..., sans-serif; }

Я считаю Lucida Sans Unicode хорошим выбором, так как он предустановлен во всех версиях Windows начиная с Windows98. Однако поддержка Unicode не так полна, как можно было бы ожидать.

Но я начал предпочитать иконочные шрифты.У них есть преимущество в том, что глифы всегда выглядят одинаково, независимо от того, какой шрифт фактически используется.Как упоминает Джон Слегерс в своем ответе, есть отличные онлайн-инструменты для создания собственного настраиваемого шрифта значка.

...