如何让“text-justify:kashida”CSS属性对阿拉伯文文本产生效果(不包括IE浏览器)

pan*_*ank 6 html css

我使用<p>标签将阿拉伯文本插入 html 页面,并为 CSS 属性提供text-align: justify;特定的宽度和高度(以像素为单位)。

这样,就会出现段落之间的空格不一致的情况;我们如何在单词内使用相同的适当的单词拉伸(使用适当的 tatweel/kashida)?

我已经尝试过使用text-justify: kashidaCSS 属性,但它仅适用于 IE,不适用于任何其他浏览器!如图所示,很明显text-justify: kashidaMozilla 不支持 IE,而其他浏览器则需要 IE。

如何在所有浏览器中获得相同的行为,以与 Internet Explorer 相同的方式显示?

Ebr*_*owi 6

不幸的是似乎kashidaCSS3 text中删除并推迟到CSS4 text,因此如果您想用 Kashida 证明您的文本,您应该尝试移植 harfbuzz-old添加 kashida 算法(其算法已从新一代 harfbuzz 中删除,参考),该算法基于根据此处存档的 Microsoft 规范。这是 Microsoft 的 kashida 插入优先级表,您应该尝试以某种方式实现:\n在此输入图像描述

\n\n

\xd9\x91在 HTML 本身上添加 Kashida (\xc2\xab\xd9\x80\xc2\xbb) 进行文本样式并不是一个好主意(因为如果用户复制文本,它将包含添加的 Kashida,并且会给浏览器查找带来问题) -in-page) 但是,由于当前的 webkit bug /blink bug (Safari/Chrome) 版本不支持在内联()元素期间加入草书脚本字符(如阿拉伯语/波斯语),因此似乎没有任何机会获得这种类型的不插入 Kashida 的理由(或者你应该自己处理oncopy事件,它有它的的问题)。

\n\n

同样有趣的是,微软扩展了 IE Kashida 对齐实现,以支持更有趣的东西,例如text-kashida-space(在文本对齐时配置 kashida 与空白扩展的比率)。看来我们必须再等十年才能在所有主要浏览器上实现这些功能。

\n