当text-align:right时,为什么'dot'不在行的末尾

时间:2014-07-18 04:16:36

标签: html css

我正在尝试建立一个RTL网站。在输入波斯文本时,句号或点位于段落最后一行的开头,它必须位于段落的末尾。

RTL的CSS:

text-align:right;
float:right;

DEMO:http://jsfiddle.net/bbr8C/

请检查演示,在演示中,段落在右边,但句号是在最后一行的开头。我该如何解决?

4 个答案:

答案 0 :(得分:5)

那不是RTL文本 - 只是将文本移动到屏幕的右侧,但保留文本LTR。你想要的实际上是:

p {
  direction: rtl;
}

小提琴:http://jsfiddle.net/bbr8C/2/

答案 1 :(得分:4)

尝试使用它:

<p dir= "rtl"></p>

或者在CSS中:

p{
  direction: rtl;
}

答案 2 :(得分:0)

将你的CSS更改为:

p{
    text-align:left; //left now
    float:right;
}

答案 3 :(得分:0)

如果整个页面采用RTL语言,请在body元素上设置方向:

<body dir=rtl>

如果只有一个段落是RTL语言,那么自然就足够了:

<p dir=rtl>

HTML dir attribute优于CSS direction属性,因为文本方向性是其结构的固有部分,而不是偶然的表达建议。正如MDN文档所说:“由于文本的方向性在语义上与其内容有关,而与其表示无关,因此建议Web开发人员尽可能使用此属性而不是相关的CSS属性。这样,即使在不支持CSS或已停用CSS的浏览器上,文本也会正确显示。“

设置dir=rtl也会设置默认的右对齐,因此您无需设置text-align: right

通常,浏览器使用Unicode中字符属性中定义的字符方向性来呈现文本。这就是为什么即使没有方向性设置也能正确显示波斯语中的文本段落。但是,方向性规则很复杂,如果没有一些帮助,并不总能导致正确的渲染。在这种情况下,段落以句点中立的句号结束,因此默认方向性(从左到右)会错位。