所以我使用的是960网格系统,发现了一些他们不支持的东西。我考虑过切换到Blueprint,但是我必须稍后再回到设计中。无论如何,我已经简化了我的代码以显示我正在经历的事情:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Test CSS</title>
<style type="text/css">
.frame { width: 960px; margin-left: auto; margin-right: auto; }
.column { display: inline; float: left; position: relative; margin: 10px 10px 10px 10px; width: 300px; background-color: silver; }
#bkg { background-color: blue; }
</style>
</head>
<body>
<div class="frame" id="bkg">
<div class="column">Column A</div>
<div class="column">Column B<div><br/><br/><br/><br/></div></div>
<div class="column">Column C</div>
</div>
</body>
</html>
我正在尝试将背景展开以涵盖所有3列。我可以做些什么来扩展背景,以便涵盖所有3列?
答案 0 :(得分:2)
只需将此额外规则添加到您的选择器:
div.frame {
overflow:hidden;
}
你不需要依赖clearfix,除非你有框架之外的元素,你也不需要依赖任何无关的标记:两者。
答案 1 :(得分:1)
您需要将clearfix
类应用于#bkg。
<div class="frame clearfix" id="bkg">
答案 2 :(得分:1)
你想要做的是“清除漂浮物”。有很多选择,有些很容易,有些很复杂。
最简单的方法是在最后一列之后添加一个清除div,如下所示:
<div class="frame" id="bkg">
<div class="column">Column A</div>
<div class="column">Column B<div><br/><br/><br/><br/></div></div>
<div class="column">Column C</div>
<div style="clear: both;"></div>
</div>
而应工作。
以下是其他一些方法(一些,纯css):
答案 3 :(得分:1)
您可以将框架浮动为:
.frame { width: 960px; margin-left: auto; margin-right: auto;float:left}
就是这样。或者你可以在框架中添加一个“清除修复”的额外元素。预制的960网格为您提供“清除”类:
(css .clearfix { clear: both } )
<div class="frame"
...
<div class="clearfix" /></div>