2013-11-26 4 views
0

Недавно я купил шрифт и хотел встроить его в свой веб-сайт с помощью веб-шрифтов.Webfont without umlaut

Теперь проблема заключается в следующем: после покупки я понял, что шрифту не хватает умляутов, таких как ä, ü и ö, поэтому он показывает пустое место вместо символа (отсутствует).

Есть ли способ предотвратить это? Как сказать css использовать другой шрифт для недостающих символов? Или мне нужно будет отредактировать сам шрифт?

Screenshot http://i40.tinypic.com/315y5jt.png

+2

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

+0

set chris

+0

Существует способ сделать это, но он предполагает потенциально много дополнительного HTML, поэтому вы будете ненавидеть его: инкапсулируйте каждую букву, для которой вам нужен другой шрифт для в ' ü' и измените шрифт для '' s этого класса. – Ming

ответ

0

Невозможно предотвратить это. Используйте другой шрифт. (Возможно, существует расширенная версия с более высокой оплатой за приобретенный вами шрифт.) Шрифт должен быть выбран так, чтобы он содержал все символы, по крайней мере все буквы, которые могут вам понадобиться в тексте.

Можно использовать разные шрифты для разных букв одним словом, используя различные методы (@font-face, причем настройки диапазона являются самыми элегантными, но с ограниченной поддержкой браузера). Однако это означает типографскую катастрофу. Особенно, если текст содержит, например, как «ü», так и «u», обычно наблюдается поразительное несоответствие.

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

1

Потому что нет «легко», или чистый способа обойти это, кроме ремоделирования файлов шрифтов, вот небольшая JS скрипт для замены расширенных символов ASCII с <span>. (Можно было сделать это только для точных требуемых символов, но вы, возможно, снова зададите себе тот же вопрос, как только случайно попадете на другой символ, который не поддерживается.)

JS только на примере текста:

"Hêllo wörld. ÄÖÜßäöü".replace(/([\x80-\xff])/gi, '<span class="arial">$&</span>') 

Результат:

H<span class="arial">ê</span>llo w<span class="arial">ö</span>rld. <span class="arial">Ä</span><span class="arial">Ö</span><span class="arial">Ü</span><span class="arial">ß</span><span class="arial">ä</span><span class="arial">ö</span><span class="arial">ü</span> 

JQuery:

$('.webfont').each(function(){ 
    this.innerHTML = this.innerHTML.replace(/([\x80-\xff])/gi, '<span class="arial">$&</span>') 
}); 

Узлы с .webfont должны содержать только текст, хотя он также должен работать в большинстве других случаев.

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