CSS 布局 - 混合绝对和 float 定位

标签 css

我有这个基本的 CSS 布局:

CSS

左栏

框在左侧沿页面长度向下延伸。

width:16.5%, position:absolute; top:20px; left:1.5%;

它包含两个内部框,全宽,左下 float 。

正文(右栏)

这不是 float 的:

width: 82%;
margin-left: 18%;

理由

我在主体中使用了很多 float div 布局,这些布局通常需要 clearfix 元素,例如 <div style="clear:both"></div> (为方便起见,内联显示的样式)。

这些 clearfix 元素弄乱了我原来的 float 左列,所以我通过使左列成为绝对的来回应。这样,我就可以清除主体中的主要布局。

问题

左栏 + 主体包含在具有可见背景的包装中。

当 Left Column 中的元素数量变大时,left column 会增长并且可以延伸到 wrapper 下方。我需要阻止这种情况发生。

从根本上说,我可以回到 float:left 吗?以允许我的 clearfixes 为其中的 float 内容工作的方式离开列?

最佳答案

没有代码很难说,但这里有一些基本原理.. 对左列使用绝对位置是糟糕的选择,因为你的清除修复不起作用(可能你没有这样做正确的)。左列具有绝对位置,并没有真正包含在该包装器中(它从渲染流中取出),这就是它越过它的原因。您可以使用少量 JavaScript 在左侧列变大时扩展该包装器。或者如果这不方便,您应该尝试使其与 float left 一起使用.

关于CSS 布局 - 混合绝对和 float 定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5362718/

相关文章:

jquery - 如何使用 jQuery 动态重新评估函数?

css - 如何使用自定义 CSS 为移动设备添加不同的 Logo ?

css - Internet Explorer 的样式问题 - 最有可能的简单解决方案

css - 保持 div 高度与纵横比相关

javascript - 通过参数清除缓存

javascript - 不是把 'value'包裹在输入框里?

css - 居中和正确的元素 (div) 顺序

javascript - 我将如何在响应式网格中安排 div? (Wolfram.com 风格)

css - Flexbox 2 列但间隔为 3

javascript - -webkit-appearance 不消失