Html 浮动2个div的css浮动规则是什么?
在我看来,当浮动2个div而不是1个div时,我们会得到完全不同的行为。 在本例中,左侧边栏在主div内浮动Html 浮动2个div的css浮动规则是什么?,html,css,css-float,Html,Css,Css Float,在我看来,当浮动2个div而不是1个div时,我们会得到完全不同的行为。 在本例中,左侧边栏在主div内浮动 <div class="left-sidebar" style="float:left; width:10%;"></div> <div class="main" style="width:70%;"></div> 我试图在规范(w3c可视化格式模型)中找到一个浮动规则来解释这种行为,但没有找到任何规则。当您只浮动。左侧边栏,发生的情况是
<div class="left-sidebar" style="float:left; width:10%;"></div>
<div class="main" style="width:70%;"></div>
我试图在规范(w3c可视化格式模型)中找到一个浮动规则来解释这种行为,但没有找到任何规则。当您只浮动
。左侧边栏
,发生的情况是它只浮动在.main
的内容上。.main
元素本身的位置就好像.left sidebar
根本不存在一样-也就是说,.left sidebar
已从.main
参与的正常流中删除
当您浮动这两个元素时,所发生的情况是.left sidebar
相对于.main
本身浮动。结果是两个盒子并排堆叠在一起。.main
元素位于.left sidebar
的浮动之后,因为它们都是浮动的。.main
中的内容不受.left侧边栏
浮动的影响
规范的第三部分对float
属性及其值进行了非常简洁的描述。具体来说,
左元素生成一个浮动到左侧的块框。内容在框的右侧流动,从顶部开始(以“clear”属性为准) 它还详细指定了浮动应该如何与其他内容和其他浮动交互。有几个规则,但只有第二个适用于您的示例(它基本上意味着“左浮动框必须相互堆叠,如果不是水平堆叠,则垂直堆叠”): 以下是控制浮动行为的精确规则:
学习如何工作同样,我看你的两个例子没有区别。我已经用第二个例子的正确链接更正了这篇文章。现在他们不一样了。我明白你在说什么,但也许我不清楚什么是奇怪的。事实上,在第二个示例中,右侧边栏的内容没有沿着main div的右边框流动。但是,当我在右侧边栏上放置的宽度大于left和main之和时,我错误地发现了原因,并注意到它的内容确实在main旁边流动。所以我错过的是右侧边栏,没有浮动,它的左边缘与左侧边栏的左边缘对齐,所以当宽度小于main+left的宽度时,它不会流到main旁边。
<div class="left-sidebar" style="float:left;width:10%;"></div>
<div class="main" style="width:70%;float:left"></div>
<div class="right-sidebar" style="width:20%;"></div>