我想更改另一个标签内的标签的方向,但无法正常工作。
在以下示例中,我希望完全按照我的写作方式来查看aslami @
,但是结果显示@
之前的a
而不是i
之后的内容。
<p style="width: 100%; direction: rtl; text-align: right;">
مهدی
<em style="direction: ltr; text-align: left;">aslami @</em>
خاوری
</p>
答案 0 :(得分:2)
您需要添加unicode-bidi:isolate;
ref
<p style="width: 100%; direction: rtl; text-align: right;">
مهدی
<em style="direction: ltr;unicode-bidi:isolate; text-align: left;">aslami @</em>
خاوری
</p>
但是正如规范中所述,与dir
相比,您最好使用direction
由于HTML UA可以关闭CSS样式,因此我们建议HTML作者使用HTML dir属性和
<bdo>
元素,以确保在没有样式表的情况下正确的双向布局。 作者不应在HTML文档中使用方向。
您还应该注意,dir
和direction
之间存在细微差别。
关于方向,我们有:
ltr
此值将行内基本方向( bidi方向性)设置为从左到右。 ref
对于dir,我们有:
ltr关键字,它映射到ltr状态
表示元素的内容是明确定向隔离从左到右的文本。 ref
因此,使用dir=ltr
等效于direction: ltr;unicode-bidi:isolate;
,而不仅仅是direction: ltr;
请参阅@Ori Drori
的答案您还可以考虑使用bdi
标记来执行相同操作:
<p style="width: 100%; direction: rtl; text-align: right;">
مهدی
<bdi><em style="direction: ltr; text-align: left;">aslami @</em></bdi>
خاوری
</p>
bdi元素表示文本范围,该范围与周围环境隔离,用于双向文本格式 ref
答案 1 :(得分:1)
css direction
property主要用于设置布局方向(请参阅链接中的第一个示例)。使用html dir
attribute设置文本方向:
<p dir="rtl" style="direction: rtl;">
مهدی
<em dir="ltr">aslami @</em>
خاوری
</p>
答案 2 :(得分:0)
要缩短代码,您可以仅在HTML标记上单独使用dir属性。这样的事情。 `
<p dir="rtl" style="width: 100%; text-align: right;">
مهدی<em dir="ltr">aslami @</em>خاوری
</p>
`