考虑网页的这个标题:
这是从右到左和从左到右语言的混合文本,整个文本的方向性可能是:
从左到右,如果在ltr文本中嵌入rtl片段
从右到左,如果在lrtl文本中嵌入ltr片段
在某些网页中,您需要提供从右到左的标题,并混合使用从左到右的文字片段。但是,浏览器无法正确格式化。它以<title>
方向性呈现整个ltr
内容。这会导致标题,应该显示为
如图所示
我知道CSS不在那里工作。有没有办法强制浏览器以正确的方向呈现<title>
?
答案 0 :(得分:11)
您可以尝试使用Unicode RIGHT-TO-LEFT OVERRIDE字符。见here。
也就是说,使用‮
开始标题文本
快速测试表明它至少可以在我的浏览器上运行;不确定它是否适用于所有浏览器。它可能会向后写披萨。小心使用。
答案 1 :(得分:9)
在title
元素内容的开头使用RIGHT-TO-LEFT EMBEDDING字符(RLE,U + 202B),例如
<title>‫אבג Hello ابثج</title>
RLE通常被描述并用作要使用的字符(与POP方向格式化一起使用),用于将一系列从左到右文本嵌入到从右到左的文本中,反之亦然,在非情况下由自动机制正确处理。但它似乎也适用于title
元素,至少在IE,Firefox和Opera上。
答案 2 :(得分:4)
你试过了吗?
<title>left to right ‮right to left</title>
对于正文,您可以使用CSS(direction: rtl;
和unicode-bidi: bidi-override;
)或标记(<bdo dir="rtl">
)。
演示:http://jsfiddle.net/ThinkingStiff/hD5Sp/
HTML:
<span>left to right <bdo dir="rtl">"right to left"</bdo> left to right</span><br />
<span class="rtl">right to left <span class="ltr">"left to right"</span> right to left</span>
CSS:
.rtl {
direction: rtl;
unicode-bidi: bidi-override;
}
.ltr {
direction: ltr;
unicode-bidi: bidi-override;
}
输出:
答案 3 :(得分:0)
无法强制浏览器改变方向。 当然,您可以反过来编写句子,并且有一些API可以获得有意的RTL文本,并生成一个LTR文本,其最终结果看起来像一个有效的RTL语句。
请注意,某些浏览器,尤其是RTL语言位置的浏览器,首先会获得一个RTL浏览器。也就是说,他们的标题是RTL。对于善与恶。因此,即使您按照我的描述应用RTL-to-LTR hack,这些用户也会反过来看到它。
答案 4 :(得分:0)
标题的一部分可能是从右到左,部分是从左到右吗?
例如:
<title> This part is right to left | This part is left to right | This part is righ to left </title>
答案 5 :(得分:0)
只需使用此CSS规则即可涵盖所有情况:
*[dir="ltr"] {
direction: ltr;
unicode-bidi: embed;
}
*[dir="rtl"] {
direction: rtl;
unicode-bidi: embed;
}
bdo[dir="ltr"] {
direction: ltr;
unicode-bidi: bidi-override;
}
bdo[dir="rtl"] {
direction: rtl;
unicode-bidi: bidi-override;
}