我是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; ...整个想法是我不想要任何元素,只是为了设计一些东西。
答案 0 :(得分:13)
dir
会对跨度产生影响,但跨度不会像您预期的那样与右侧对齐,只会与其内容对齐。
如果以点结尾,您将看到span
的效果 - 点将位于左侧,而不是右侧。
Div是display:block
元素,意味着它填充整个宽度 - 这就是为什么文本可以在其中对齐的原因。 Span
是display: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一起工作的原因是那些是块元素。因此,您需要使用块元素来设置文本方向。