我将在这里为您提供一个简单的示例,假设您没有分配中间div
值width
,所以看看它实际上会做什么
演示
<div style="width:100%">
<div style="width:20px;height:20px;background-color:red;float:left;border: 3px solid #000;"></div>
<div style="height:20px;background-color:red;margin:0 auto auto;border: 3px solid #000;"></div>
<div style="width:20px;height:20px;background-color:red;float:right;border: 3px solid #000;"></div>
</div>
为什么会发生这种情况?
div
是一个block-level
元素,它占据页面上的整个水平空间,如果你知道,当你float
有任何元素left
或者right
它不会再占用100%
它时,它只会占用使用宽度分配的空间,或者它包含的内容,所以在这种情况下,left floated
div
将占用20px
宽度,而其他空间未使用。现在你有另一个div
不是浮动的,但它会占用剩余的可用水平空间,使你的right floated
div
元素向下推。
那么该怎么做才能解决这个问题呢?
您需要float
全部div
向左,或者如果您middle
div
float
向左或向右可能就足够了。现在我知道你想让 2 div
, 1 向左浮动,其他浮动向右,但这不是正确的方法,如果你愿意,你可以将元素包装在一个容器中div
,或者你可以使用的是position: absolute;
正确设置元素。
为了向您展示块级元素的工作原理,我将在这里分享另一个示例。
假设你有一个div
嵌套在p
标签内(这是无效的,所以请不要在现实世界中使用它,这只是为了演示目的),并给div
元素一些宽度,看看它如何呈现你的文本。
<p>Hello World, I don't want the <div>text to</div> break</p>
div {
width: 40px;
background: #f00;
}
演示 2
尽管您提供了width
to 块级元素,但它仍然会破坏段落。
来自w3c
默认情况下,块级元素的格式不同于内联元素。通常,块级元素从新行开始,而行内元素则不然。