我使用<p>标记将阿拉伯文本插入html页面,并以像素为单位提供具有特定宽度和高度的css属性text-align: justify;
这样,段落之间就会有不一致的空格;我们如何在单词内部使用适当的单词拉伸(适当的tatweel/kashida)?
我已经用css属性尝试过了,但它只在ie上工作,不适用于其他浏览器!如图所示,很明显,mozilla不支持text-justify: kashida,其他浏览器也希望使用ie。
html - 如何在不包括IE浏览器的阿拉伯文本上获得“text-justify:kashida” css属性效果-LMLPHP
如何在所有浏览器中获得相同的行为,以显示与Internet Explorer相同的内容?

最佳答案

不幸的是,似乎kashidaCSS3 text中删除并延迟到CSS4 text,所以如果您想用kashida来证明您的文本是正确的,您应该尝试移植harfbuzz oldadding kashida algorithm(它的算法从新一代的harfbuzz中删除,ref),它基于存档的Microsoft规范。下面是Microsoft的Kashida插入优先级表,您应该尝试以某种方式实现它:
添加kashida(~»)用于html本身的文本样式不是一个好主意(因为如果用户复制文本,它将包含添加的kashida,这将给浏览器在页面中查找带来问题),但是由于当前的webkithere/blink(safari/chrome)版本不支持加入草书脚本内联()元素中的字符(如阿拉伯语/波斯语)如果不插入kashida,似乎就不可能获得这种类型的对齐(或者您应该自己处理pseudo事件,因为它有自己的问题)。
同样有趣的是,微软扩展了ie kashida justification实现来支持更有趣的东西,比如oncopy(在文本证明的同时配置kashida与空白扩展的比率)。看来我们必须再等十年,才能在所有主流浏览器上实现这些功能。

10-05 20:56