我有一个<div>
我想自己上线的。根据W3Schools,这条规则:
div.foo {
clear: both;
}
...应该是这个意思:
“左侧或右侧都不允许浮动元素。”
但是,如果我将两个元素向左浮动<div>
,并将上面的规则应用于第一个元素,则第二个元素不会让步。
另一方面,如果我申请"clear: left"
第二个<div>
,它会向下移动到下一行。这是我的正常做法,但我不明白为什么我必须这样做。
上面的 W3Schools 描述是否表述不佳,还是我遗漏了什么?清除规则是否只能移动应用它的元素?
回答
感谢 Michael S 和 John D 的良好解释。Warren 指出CSS2 spec,这就是我找到这个答案的地方(强调我的):
此属性指示元素框的哪些边可能不与 较早的浮动框相邻。
所以:clear
只影响应用它的元素的位置,相对于出现在它之前的元素的代码。
令人失望的是我不能告诉我<div>
让其他 div 向下移动,但它们是休息时间。:)