Css 如何在没有包装的情况下左右浮动项目?

Css 如何在没有包装的情况下左右浮动项目?,css,position,Css,Position,下面是一些示例代码: 我希望类为左的项目在左侧浮动,类为右的项目在右侧浮动(在左侧项目旁边)。如果没有包装div,我如何实现它呢?您的左浮点和右浮点没有对齐,而LinkinTED的对齐(在他从评论链接的JSFiddle中)是因为顺序在浮点div的声明中很重要。浮动元素,就像非浮动元素一样,首先定位为页面上从上到下的“流”的一部分。然后将它们从流中的自然位置取出,水平向左或向右移动,直到它们遇到其包含元素的边缘或另一个浮动元素的边缘 因此,当有三个div相继声明了float:left属性时,它们自

下面是一些示例代码:


我希望类为
的项目在左侧浮动,类为
的项目在右侧浮动(在左侧项目旁边)。如果没有包装div,我如何实现它呢?

您的左浮点和右浮点没有对齐,而LinkinTED的对齐(在他从评论链接的JSFiddle中)是因为顺序在浮点div的声明中很重要。浮动元素,就像非浮动元素一样,首先定位为页面上从上到下的“流”的一部分。然后将它们从流中的自然位置取出,水平向左或向右移动,直到它们遇到其包含元素的边缘或另一个浮动元素的边缘

因此,当有三个div相继声明了
float:left
属性时,它们自然会一个接一个地放置在后面声明的两个
float:right
div之前。当它们从流中拉出并向左浮动时,它们仍将保持此顺序。通常,三个左浮动元素将水平堆叠(第二个元素将浮动到第一个元素的边缘),但由于每个元素都具有
clear:left
属性,因此后续的div将被强制到它们自己的行上。只有在定位了三个左浮动div之后,才能显示两个右浮动div,因为它们会在自然(预浮动)流中稍后出现

另一方面,LinkinTED的JSFiddle按照左右交替的顺序声明div,因此在自然流中它们看起来是交错的。然后,当每个右浮动DIV从流中拉出以向右浮动时,它可以与左浮动DIV共享一行,因为还不需要出现其他左浮动DIV


有关浮动机制的更多信息,请查看和。

您的左浮动和右浮动没有对齐,但链接的浮动(在他从评论链接的JSFIDLE中)是因为顺序在浮动div声明中很重要。浮动元素,就像非浮动元素一样,首先定位为页面上从上到下的“流”的一部分。然后将它们从流中的自然位置取出,水平向左或向右移动,直到它们遇到其包含元素的边缘或另一个浮动元素的边缘

因此,当有三个div相继声明了
float:left
属性时,它们自然会一个接一个地放置在后面声明的两个
float:right
div之前。当它们从流中拉出并向左浮动时,它们仍将保持此顺序。通常,三个左浮动元素将水平堆叠(第二个元素将浮动到第一个元素的边缘),但由于每个元素都具有
clear:left
属性,因此后续的div将被强制到它们自己的行上。只有在定位了三个左浮动div之后,才能显示两个右浮动div,因为它们会在自然(预浮动)流中稍后出现

另一方面,LinkinTED的JSFiddle按照左右交替的顺序声明div,因此在自然流中它们看起来是交错的。然后,当每个右浮动DIV从流中拉出以向右浮动时,它可以与左浮动DIV共享一行,因为还不需要出现其他左浮动DIV


有关浮动机制的更多信息,请查看和。

您想避免使用包装器div的具体原因是什么?您是否正在尝试创建两列布局,第一列中有左浮动项,第二列中有右浮动项?我们可以看看您的代码吗?因为有很多方法可以做到。例如:两个项目都是向左浮动的,而左边的项目则是您添加了右边距或右边填充的项目。您想避免使用包装div的具体原因是什么?像这样?您是否正在尝试创建两列布局,第一列中有左浮动项,第二列中有右浮动项?我们可以看看您的代码吗?因为有很多方法可以做到。例如:两个项目都是向左浮动的,而左边的项目则是向右添加边距或填充。