Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS unicode bidi嵌入_Css_Bidi - Fatal编程技术网

CSS unicode bidi嵌入

CSS unicode bidi嵌入,css,bidi,Css,Bidi,我正在努力学习unicode bidi属性的用法。例如,我认为如果我将方向设置为带有拉丁字母的单词formet,并将嵌入的值指定给unicode bidi属性,则该单词将被隔离,不会影响周围的上下文。但是,下面的代码与我的预期相反: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <span style="direction:rtl

我正在努力学习unicode bidi属性的用法。例如,我认为如果我将方向设置为带有拉丁字母的单词formet,并将嵌入的值指定给unicode bidi属性,则该单词将被隔离,不会影响周围的上下文。但是,下面的代码与我的预期相反:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<span style="direction:rtl;unicode-bidi:embed"> James</span>:15<br/>
<span style="direction:rtl;"> James:</span>15
</body>
</html>

詹姆斯:15
詹姆斯:15
我希望第一个显示右边的数字,因为“rtl”文本是孤立的,但第二个显示

我知道unicode bidi属性对阿拉伯语、希伯来语等单词很有用,但我想知道这里发生了什么

我搜索了谷歌,在这里找到了unicode bidi的确切答案,但我能找到的唯一东西是“提供一个嵌入级别”,这对我来说还不够清楚


有人能解释一下这个属性以及上面的代码中发生了什么吗

嵌入的含义最终在UAX#9中定义。我不想假装理解所有这些,但以下是我认为在你的情况下发生的情况:

在代码的第二部分中,您只需为字符串“James”声明从右向左的方向。这没有效果,因为
方向
属性仅影响总体布局方向(例如,表列是从左向右还是从右向左)和方向中性文本的文本方向。这里的内容只有拉丁字母,具有很强的从左到右的方向性,还有一个空格,它适应具有很强方向性的相邻字符的方向性

但是,在第一部分中,声明
unicode bidi:embed
会导致根据其声明的方向性(从右到左)来处理整个元素,即使该方向性在元素内部没有影响。从某种意义上说,它就像一个从右向左的字母。用X标记,我们得到X:15。它的呈现方式与X是阿拉伯字母的呈现方式相同:这个方向性强的字母出现在右边,然后在它的左边,方向性弱的标点符号“:”,然后是从左到右的普通数字15(甚至在阿拉伯文本中也是如此)