|

Баг Opera — неверный расчет letter-spacing в текстах на иврите и других языках с письмом справа налево

комментариев нет »

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

Почему очередной? — Чуть позже напишу про ранее обнаруженные баги. Все предыдущие были связаны с direction:rtl (это свойство наиболее часто используется при верстке сайтов на иврите, арабском и других языках, у которых иное направление письма и чтения — оно позволяет, например, правильно расположить знаки препинания в текстах).

Итак сам баг:


עבודות תשתית שבוצעו בעיר העתיקה חשפו את הרחוב המרכזי שבו
הלכו תושבי הבירה לפני 1,500 שנה.
 לוחות האבן התגלו בעומק של 4.5 מטרים מתחת לרחובות של ימינו
- Это текст на иврите с расстоянием между знаками 2 пикселя.

вот как это выглядит на странице:

עבודות תשתית שבוצעו בעיר העתיקה חשפו את הרחוב המרכזי שבו הלכו תושבי הבירה לפני 1,500 שנה. לוחות האבן התגלו בעומק של 4.5 מטרים מתחת לרחובות של ימינו
— Это текст на иврите с расстоянием между знаками 2 пикселя.

Если у вы просматриваете эту запись в браузере Opera, то сможете заметить, что расстояния между словами в русском и ивритском тексте отличаются. — Opera в этом случае поступает с пробелами как с обычными знаками и делает вокруг них дополнительный отступ, которого нет ни при «обычном» написании, ни в других браузерах.

Для остальных — скриншот:

Ошибка в расчете letter-spacing в Opera

Баг проявляется независимо от значения direction. Неприятно. Особенно в меню и других местах, где длина строки критична. Да и вообще, такой текст читать проблематично. Исправил (частично) скриптом — letter-spacing для Opera уменьшил вдвое — так хоть в строку влезает (можно сделать сложнее — разбирать тексты по словам и изменить letter-spacing лишь для пробелов, но это ресурсоемкая операция). Хаки — не наш метод. :)



Раздел: Вёрстка. Тэги: <, />

Следить за комментариями к этой статье (RSS 2.0) | Оставить комментарий

 

Оставить комментарий:

Вы можете использовать следующие тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Где взять аватар?

Вход | Регистрация

Первые комментарии незарегистрированных посетителей проходят модерацию.
Адрес сайта публикуется только после регистрации или проверки (для комментаторов).

девять + 7 =

|