Отображение кхмерских символов (с гласными) в тексте ввода HTML

Для слова cambodian в кхмерском это កម្ពុជា, Это слово на кхмерском языке выше, чем обычные символы ASCII, из-за сочетания двух гласных в нижней части второго символа.

В IE (версии 8–11) и Mozilla Firefox (версия 28) гласные не отображаются полностью в тексте ввода. Но в Google Chrome (версия 34) отображаются гласные.

У меня есть тестовая страница в JsFiddle.

Шрифт Khmer, который я использовал в своих браузерах, - это шрифт Khmer OS System.

Единственное решение, которое я могу придумать, - это увеличение высоты текста типа ввода, например input[type='text'] { height: 25px; }, Но в IE 9, хотя высота выше, гласные по-прежнему не отображаются, если рядом с ними не введен пробел.

Могу ли я использовать JavaScript или CSS-хак, чтобы IE и FIrefox отображали гласные, например, как это делает Google Chrome?

1 ответ

Решение

Проблемы могут зависеть от шрифта, размера шрифта и механизма рендеринга. Что вы можете сделать с этим, чтобы установить input { font-size: 100% }, который переопределяет общие значения по умолчанию в браузерах - они используют размер шрифта, уменьшенный примерно на 10% для input элементы. Одно только это правило решало проблему при тестировании в Firefox в Windows 7 (в противном случае была обнаружена проблема, описанная в вопросе).

В IE 11 проблема выглядит намного хуже: кхмерские символы действительно нечитаемы (около 1 мм в высоту), а настройка размера шрифта не сильно помогает. Причина в том, что IE использует другой шрифт. Добавление input { font-family: Khmer UI } исправил это. Но это, конечно, зависит от наличия подходящего шрифта в системе. Ваш пробег будет отличаться, но установка размера шрифта на 100% и семейства шрифтов на подходящий шрифт (то же самое, что используется для обычного текста, если он работает нормально) для input Элементы, вероятно, решает проблему локально.

На веб-страницах ситуация намного сложнее. Кхмерские символы все еще очень редко встречаются в шрифтах - есть вероятность, что в системе пользователя нет шрифта, который их поддерживает. (Согласно данным Fileformat.info об этом, только два шрифта имеют кхмерские символы: Code2000 и GNU unifont. Есть еще несколько, но они, скорее всего, являются шрифтами, которые пользователям необходимо будет загрузить и установить, а не что-либо, поставляемое с ОС.) Так что кажется, что единственный практический подход - это использовать загружаемый шрифт, такой как шрифт Google Khmer. Разверните его в соответствии с инструкциями Google и установите для кхмерского контента в обычном тексте и для input (и установите размер до 100%).

Другие вопросы по тегам