使用<span>添加方向(dir =“rtl”)</span>

时间:2009-09-24 18:58:51

标签: html

我是html的新手,并且经常使用希伯来语。我遇到了这个问题,这让我觉得我误解了一些事情。

据我所知,该元素没有效果,但它确实允许添加样式。

然而,尝试这样做:

<span dir="rtl"> some text that should be rtl'ed </span>

似乎对我没用(dir没有效果)。

另一方面,使用&lt; div dir =“rtl”&gt;可以正常工作。

那么..为什么不是&lt; span&gt;工作?据我所知,我正在使用&lt; span&gt;正是为了它的目的:添加样式。当我使用它来添加颜色时它工作正常......为什么不呢?

感谢您的任何见解! 鹅蛋

P.S。经过一些测试,我还发现,如果我用&lt; p&gt;包围文本(在&lt; span&gt;内),然后dir 生效。但在这种情况下,为什么我不会只使用&lt; p dir =“rtl”&gt; ...整个想法是我不想要任何元素,只是为了设计一些东西。

2 个答案:

答案 0 :(得分:13)

dir会对跨度产生影响,但跨度不会像您预期的那样与右侧对齐,只会与其内容对齐。
如果以点结尾,您将看到span的效果 - 点将位于左侧,而不是右侧。 Div是display:block元素,意味着它填充整个宽度 - 这就是为什么文本可以在其中对齐的原因。 Spandisplay:inline,因此它位于文本中,类似于字母(以简单的方式)。
(顺便说一句,在block元素中包含inline元素被视为无效

这是一个有效的演示。请注意,最后一个div位于右侧:

Test right to left, div and span: <br />
<span>(span)  Hello World!</span> <br />
<span dir='rtl'>(span rtl)  Hello World!</span>
<div>(div) Hello World!</div>
<div dir='rtl'>(div rtl) Hello World!</div>

答案 1 :(得分:1)

不同之处在于span是内联元素,而dir不适用于内联元素(高度和位置不同)。它与div一起工作的原因是那些是块元素。因此,您需要使用块元素来设置文本方向。