Javascript 确保左浮动元素为';你排在最后吗?

Javascript 确保左浮动元素为';你排在最后吗?,javascript,html,css,Javascript,Html,Css,我正试图找到一种方法来确保一个特定的左浮动元素不是一行中的最后一个,如果是这样的话,就放到新行 处理这个I图的最佳方法是检测元素和窗口右侧之间是否有足够的空间容纳另一个元素(已知距离,比如160px),如果没有,则将该元素放到下一行。这在CSS中是可能的吗?JS是可以的,但如果我能用CSS来做这件事,那将是我的首选 谢谢 在某种程度上,这是解决您问题的方法- 如果包装器元素的宽度小于浮动元素宽度的两倍,则会失败,因为特殊元素旁边的浮动元素将不会显示。在某种程度上,这是问题的解决方案- 如果包装器

我正试图找到一种方法来确保一个特定的左浮动元素不是一行中的最后一个,如果是这样的话,就放到新行

处理这个I图的最佳方法是检测元素和窗口右侧之间是否有足够的空间容纳另一个元素(已知距离,比如160px),如果没有,则将该元素放到下一行。这在CSS中是可能的吗?JS是可以的,但如果我能用CSS来做这件事,那将是我的首选


谢谢

在某种程度上,这是解决您问题的方法-


如果包装器元素的宽度小于浮动元素宽度的两倍,则会失败,因为特殊元素旁边的浮动元素将不会显示。

在某种程度上,这是问题的解决方案-


如果包装器元素的宽度小于浮动元素的两倍,则会失败,因为特殊元素旁边的浮动元素将不会显示。

@Joseph不确定为什么需要。这个问题还有什么不清楚的地方?@NaOH:因为如果你给我们提供一个简单的例子,我们可以立即开始玩它
->
更多/更好/更快的结果:)@biziclop给你,我想。。。这并不容易,我在玩一些东西,比如实际上你想要一个条件的
清除:left
。好吧,我放弃@约瑟夫不知道你为什么需要。这个问题还有什么不清楚的地方?@NaOH:因为如果你给我们提供一个简单的例子,我们可以立即开始玩它
->
更多/更好/更快的结果:)@biziclop给你,我想。。。这并不容易,我在玩一些东西,比如实际上你想要一个条件的
清除:left
。好吧,我放弃。这真是天才!它似乎完全按照预期工作。我会实施它,并让你知道我是怎么做的。谢谢大家!@这是非常非常接近完美的工作。看见我遇到的唯一问题是,下面的元素并不总是相同的宽度(但将是3种不同宽度中的一种)。在不使用jquery的情况下,有没有办法让它使用前面元素的宽度作为边距的值?对不起,这里没有“前一个同级”CSS选择器。因此,我们无法检查下一个浮动元素的宽度。在这种情况下,可以做的就是使用三种不同的CSS类,比如“before_nearrow”、“before_normal”和“before_wide”。当然,您应该使用jQuery来正确设置它们。请参阅更新的解决方案-这不是问题,我已经通过一些PHP黑客使其正常工作。谢谢你的帮助!这真是天才!它似乎完全按照预期工作。我会实施它,并让你知道我是怎么做的。谢谢大家!@这是非常非常接近完美的工作。看见我遇到的唯一问题是,下面的元素并不总是相同的宽度(但将是3种不同宽度中的一种)。在不使用jquery的情况下,有没有办法让它使用前面元素的宽度作为边距的值?对不起,这里没有“前一个同级”CSS选择器。因此,我们无法检查下一个浮动元素的宽度。在这种情况下,可以做的就是使用三种不同的CSS类,比如“before_nearrow”、“before_normal”和“before_wide”。当然,您应该使用jQuery来正确设置它们。请参阅更新的解决方案-这不是问题,我已经通过一些PHP黑客使其正常工作。谢谢你的帮助!
#special { 
    background-color:green; 
    margin:0 170px 5px 0;
}
#special + .left-float {
    background-color:blue;
    margin-left: -165px;
}