2010-03-12 52 views
8

我想右对齐div右侧的内联元素。我已经看到在跨度上应用float =“right”来右对齐,但对于我来说在语义上似乎不正确,因为浮动应该将“框”或块元素移动到容器元素的右侧或左侧。将一个内联元素浮动到div的右侧

我对Float的理解是错误的还是存在另一种右对齐容器DIV中内联元素的方法。

+0

另一个我在跨度上使用Float的问题是我们在跨度上使用float:right而没有指定宽度,这又违背了Float的要求。基本上,我想利用内联元素的伸缩属性,因为它需要内容的宽度,这在我的情况下是动态的。将其转换为DIV会失去这种优势。 – Rajat 2010-03-12 06:33:53

回答

5

浮动元素会自动将其放入一个框中。 (请参阅:http://css.maxdesign.com.au/floatutorial/introduction.htm)但是,它没有任何语义错误。语义并不决定应该将哪些内容显示为块,以及内联显示的内容 - 这是我们可以任意声明的原因之一。 (它肯定会变得凌乱当你开始说出他们的命令 - 但我怀疑你是在这里说什么,因为我无法想象的情况下,当你想这样做有它仍然是内联的。)

此外,如果您需要将一行内嵌文本与正常文本流(这是浮动操作)进行对比,那么您确实想要将其显示为块。如果它真的是一个内联元素,那么你需要的只是text-align:right - 任何你需要的浮点数或在你声明的位置已经被视为一个块元素,所以声明它是没有问题的。

+0

但不使用浮点宽度不推荐,在这我希望我的宽度=内容,因此内联元素?所以,如果我的元素是一个带有Float的块元素,是不是指定的宽度会受到伤害? – Rajat 2010-03-12 16:47:17

+1

@Rajat没有指定宽度意味着默认情况下你的float值将缩小到最长的单词的大小。您可以使用white-space:nowrap覆盖该行为 - 然后它将与您的内容一样宽。 (所以如果你需要包裹的话,一定要加入无线电通信局。) – 2010-03-12 19:49:26

6

float: right完全适用于所有元素,块级或内联无关紧要,无论是语义还是根据规范(据我所知)。

如果你想右对齐的东西,而无需使用float然后还有的margin-right: 90%;的可能性(假设你知道什么是从/右对齐对嵌合的10%。

或者direction: rtl;但从来没有像我认为它应该的作品,加上它可能会复杂的东西。

position: absolute; right: 0;会根据您的需要做(但它会被从文档的流程中删除,它将被定位对其父元素的第一个具有定义的position: relative;(或至少定义为position)。

您可以使用text-align: right,但看起来像这样一个简单的解决方案,我相信您已经尝试过了。

如果你能提供一个用例,一些代码和一个预期的最终结果的指示,我们可能会帮助你更多。

相关问题