浮动需要宽度吗?

Does a float need a width?

在对浮动进行了大量研究之后,我很困惑为什么网络上有如此多的信息以至于浮动应该始终定义一个宽度。人们常说,float 会占据整个 space,因此表现得像一个普通的块元素。但关于此处的信息 http://www.w3.org/TR/CSS21/visudet.html#shrink-to-fit-float,浮动将始终缩小以适合。据我所知,除非需要,否则浮动永远不会占用整个 space。

考虑导航项时,是否需要指定宽度?我不认为在这种情况下。也许当浮动内容太大时?

这里也讨论过Do you really need a width on floated element?但没有明确说明,这不是必需的。

我认为并非所有浮动元素都需要固定宽度,但也许任何位置 CSS 包括将页面分成 3 列,您可能需要考虑将浮动列的宽度固定为 left/right。一个原因是因为导航栏或论坛帖子或某种超链接列表通常在页面的两侧对齐,如果这两列不固定,锚链接的字符限制将受到限制,因为屏幕尺寸减小。当屏幕缩小时,您可能不希望您的内联锚标记跨多行换行。固定宽度将消除这一点。

浮动不需要宽度。优点和缺点也是折叠容器,如果其中没有内容。 看看:Expand div to max width when float:left is set

删除div-tag中的所有p-tag(class右)显示效果:不再有红色背景

.content .left{
 float:left;
 width:100px;
 background-color:green;
}
.content .right{
 margin-left:100px;
 background-color:red;
}
<div class="content">
 <div class="left">
  <p>Hi @ all</p>
 </div>
 <div class="right">  
  <!-- no content no backgroundcolor -->
 </div>
</div>