Вопрос по html, arabic – Частично раскрашенное арабское слово в HTML

13

Я не говорю по-арабски, но мне нужна конкретная поддержка арабского языка в нашей сети. Мне нужны части арабских слов, чтобы быть в<span> с другим стилем, чем остальное слово. Когда я печатаю два символаش а такжеسони состоят в словеشس, но когда я использую разметку HTML

<span>ش</span>س

эти буквы не объединяются прямо в выводе.

enter image description here

На рисунке желаемый вывод находится во второй строке, фактический вывод - в первой строке.

EDIT: Он работает в Firefox, но не работает в Chrome / Safari.

Выглядит хорошо здесь:jsbin.com/edimiq/2 Dark Falcon
Пролеты встроены. Теперь я вижу, что он работает в Firefox, но не работает в Chrome / Safari на моем Mac :( Ondra
Ваши промежутки имеют встроенный дисплей, не так ли? techfoobar
Просто к вашему сведению, я нахожу то же самое в XAML. Использование двух zwj не помогает в некоторых ситуациях, таких какبد&#x200d;<Span Foreground="Red">&#x200d;ه</Span> Todd Main

Ваш Ответ

3   ответа
17

используя ссылку на сущность&zwj;) в концеspan содержание элемента:<span>ش&zwj;</span>س.

В более общем смысле, столяры с нулевой шириной в начале и конце каждогоspan элемент, а также (просто чтобы быть более уверенным) до и после каждогоspan элемент, в ситуациях, когда текст должен иметь курсивное (объединяющее) поведение иspan может сломать это.

Вопрос обсуждается и иллюстрируется наДвунаправленный текст страница Андреаса Прилопа.

Update: К сожалению, кажется, что даже&zwj; не помогает в текущих версиях браузеров WebKit. Кажется, они считают, что разметка HTML нарушает поведение соединения, несмотря ни на что.

Update 2: Как описано в комментарии @ NasserAl-Wohaibi, новую проблему можно решить с помощью&zwj; дважды. Однако в текущей версии Safari (5.1.7) для Windows это не помогает; на самом деле, он отображает дажеش&zwj;س неправильно, тогда как без столяра, это показываетشس правильно.

Когда текст выделен курсивом (font-style: italic), это больше не работает. Посмотрите наjsfiddle, Простое решение, избавьтесь от курсива: S
Что касается вашего обновления, попробуйте добавитьtwo &zwj;до буквы во внутреннем диапазоне И после слова во внешнем диапазоне прекрасно работает со мной в chrome23. напримерjsfiddle
+1, хороший. @ Ондра, это кажется более подходящим кандидатом наaccepted answerимейте ввиду
Спасибо за ответ! Ondra
Ничего себе ... узнавать что-то новое каждый день. Это выглядело как какая-то проблема с лигатурой для меня, поэтому я просто предположил, что решения не существует.
2

сообщил об ошибке в WebKit, таким образом, предположительно влияет на все браузеры на основе WebKit.

Вау, ошибка 2005 года. До Chrome даже не было!
1

Юкка К. Корпела указано, это в основном ошибка в большинствеWebKit-based browsers(хром, сафари и т. д.).

Простой взлом, кроме TAMDEED char или получение контекстных форм для арабских букв, заключался бы вzero-width-joiner (&zwj; или же&#x200d;) до / после письма, которое вы хотите рассматривать как один арабскийлигатура - два символа составляют другой. например

<p>عرب&#x200d;<span style="color: Red;">&#x200d;ي</span></p>  

демо:jsfiddle
см. также веб-наборошибка отчет.

Похожие вопросы