解决方法
浮动将是我的选择,但它实际上取决于您希望实现的目标.如果你能提供一个更具体的例子,我将能够给你一个明确的理由,告诉你我认为你应该使用什么和为什么.然而,这里有一套简短的利弊(我假设通过定位你的意思是绝对定位):
定位专业人士:
>相对于标记为相对位置的下一个祖先的非常精确的定位 – 允许极大的灵活性
>允许元素在视觉上与在DOM中的顺序不同
定位缺点:
>更难以与其他元素对齐,因为定位元素不再在文档流中,并且还因为所需的精度水平.
>其他元素忽略绝对定位元素,这意味着您可能有重叠,除非您考虑定位元素的最小和最大大小
>如果您使用列的绝对定位,则难以实现页脚.
浮动专业人士:
>非常容易构建简单和高级的布局
>没有页脚问题
>不用担心精度问题,浏览器会为您解决这个问题
>父容器延伸
浮动缺点:
>对于那些不太经验丰富的浮动布局可能导致许多问题在SO上被问到的很多陷阱:)
至于清楚:塞巴斯蒂安提到的这两个要素,有一个简单的方法.假设你有一个容器div和2个浮动div.
HTML:
<div id="con"> <div class="float"></div> <div class="float"></div> </div>
CSS:
#con { background:#f0f; } .float { float:left; width:100px; height:100px; background:#0ff; }
如果您要运行此代码,您会注意到容器div(洋红色的一个)只有一个像素高,而浮动的div是正确的 – 这是Sebastian提到的问题.现在你可以接受他的建议,并添加一个br或浮动容器,这将是非常语义 – 所以这是一个稍微更优雅的解决方案.只需添加溢出:隐藏;像这样的容器div:
#con { background:#f0f; overflow:hidden; }
现在你的容器应该正确地包装浮动的div.