HTML方向rtl问题

14

我正在制作一个多语言网站,在其中一个表格中,需要用阿拉伯语编写的td - 我们知道它需要从右边开始。我尝试了很多种方法,但都无法解决。如果有人可以帮助我,我将不胜感激:(。

在这里,这段文本的内容应该从右边开始。

 <TD><div dir="rtl">
  خیز ای عشق مجرد مهر را از سر بگیر<br/>
مردم و خالی شدم ز اقرار و از انکار خود
      </div></TD>

我需要在HTML表格中的一个TD块内使用CSS,请帮助我解决这个问题[网址- http://gallery.iis.ac.uk/persian_music/qasida_amadam.html]。 - user3030932
欢迎来到Stackoverflow。请花点时间查看帮助部分。请展示你尝试过的内容。 - Ahmad Alfy
你好Ahmad,感谢您的回复,这是我尝试过的代码"<TD><span dir="rtl"><p> آمدم تا رو نهم بر خاک پای یار خود <br/> آمدم تا عذر خواهم ساعتی از کار خود </p></span></TD>",但没有成功 :( - user3030932
你应该通过编辑问题本身来包含澄清信息。一个问题应该在不阅读任何评论的情况下就能被理解。 - Jukka K. Korpela
抱歉Jukka,我是刚在这个网站注册几分钟的新手 :) 从现在开始会注意这个问题。 - user3030932
现在问题中包含的代码已经产生了预期的效果(在Chrome,Firefox,IE上进行了测试)。如果您观察到不同的情况,那么它一定是由某些外部代码引起的,比如CSS设置会覆盖文本对齐的效果。请尝试在简单的测试文档中检查这个问题,并构建一个最小可能的文档来演示问题。 - Jukka K. Korpela
5个回答

10

这段代码是:

<html dir="rtl">

使用CSS更新答案:

尝试这样做:

<span style="direction:rtl;">Arabic Text</span>

1
嗨Praveen,谢谢你的回复,我尝试了但没有成功:(这是我所说的那个链接,歌词链接- http://gallery.iis.ac.uk/persian_music/qasida_amadam.html - user3030932
@user3030932 现在检查一下... :) - Praveen Kumar Purushothaman
你好,Praveen尝试了一下,但没有成功。你有机会检查一下URL吗?就像我把阿拉伯文本和span CSS放在<td>里面一样。 - user3030932
<TD><span style="direction:rtl;"> 我来到这里是为了向我的伙伴道歉,<br/> 并且解释一下我离开工作的原因。 </span></TD> - user3030932

6

这两个都可以:

<style type="text/css">
        body { direction:rtl; }
</style>

或者这个:
 <body dir="rtl">

或者对于HTML5:(但这并不总是有效)
 <body dir="auto">

2
td 元素上设置 dir=rtl 属性:<td dir=rtl>...</td>。应该使用 HTML 属性而不是相应的 CSS 属性,因为基本书写方向不仅仅是一种呈现建议,而是取决于内容。
您还可以在内部元素上设置它,例如: <td><div dir=rtl>...</div></td>。但是,如 <TD><span dir="rtl"><p>... 这样的代码将无法工作,因为 <p> 关闭了打开的 span 元素,因此 span 元素没有内容,其属性也没有效果。 添加信息:还要确保没有 CSS 或 HTML 设置覆盖所需的效果。例如,在 tr 元素上设置 align=left 将设置所有单元格的左对齐,dir=rtl 属性本身不会“赢得”它。(如果存在这样的属性并且无法删除它,请显式地设置单元格对齐方式,使用 HTML 中的 align=right)。

我尝试在td元素内设置方向,但它没有起作用。我希望它能够按照通常的方式工作,即英文段落从左侧开始,一旦我们使用<br>,它就会在新行中重新开始——起始点的对齐和一致性将相同。当我给出这个rtl方向时,没有一致性,如果第二行更长,则会将右侧推向左侧而不是右侧。 - user3030932
你好Jukka,感谢您一直陪伴我并解释,但我还没有成功:( 我尝试创建一个新的test.html文件,并删除所有作用于它的外部CSS..这是该页面的链接-http://gallery.iis.ac.uk/persian_music/test.html - user3030932
如果你能观察到这里,英文的部分即从左边开始在两行翻译中都是绝对对齐的,所以阿拉伯语的部分也需要从右边重复,但由于歌词的第一行更长,它会将文本推向右侧而不是左侧。希望你明白我的意思。 - user3030932
@user3030932,很好,现在问题的原因可以看到了:它是TR标签中的ALIGN="left"属性。删除它应该可以解决问题。 - Jukka K. Korpela
刚刚一分钟前,Jukka已经弄清楚了:) 现在我正在使用aligh="right"以及方向,它现在正常工作。非常感谢你的帮助。 - user3030932

1
我想你可能缺少对齐选项。 HTML dir="rtl"CSS direction:rtl 用于控制语言脚本的双向性。
但在大多数情况下,当混合使用不同的脚本时,您需要添加 HTML align="right"CSS text-align:right,用于控制视觉显示对齐。

0

解决方案是将dir="rtl"(方向:从右到左)放在表格标签上而不是td标签上。这对我很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接