Вопрос
Итак, я использую сетку 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>
Я пытаюсь увидеть, как фон расширяется, чтобы охватить все три столбца.Могу ли я что-нибудь сделать, чтобы расширить фон, чтобы он охватывал все три столбца?
Решение
Вы можете сделать плавающий кадр следующим образом:
.frame { width: 960px; margin-left: auto; margin-right: auto;float:left}
и это делает это.Или можно поместить в кадр дополнительный элемент с «четким исправлением».Готовая сетка 960 сделает это за вас с помощью класса «clear»:
(css .clearfix { clear: both } )
<div class="frame"
...
<div class="clearfix" /></div>
Другие советы
Просто добавьте это дополнительное правило в свой селектор:
div.frame {
overflow:hidden;
}
Вам не нужно полагаться наclearfix, если у вас нет элементов, выходящих за пределы фрейма, а также вам не нужно полагаться на какую-либо постороннюю разметку с помощьюclear:both.
Вам необходимо применить clearfix
класс #bkg.
<div class="frame clearfix" id="bkg">
Что вы хотите сделать, так это «очистить поплавок». Есть много вариантов, некоторые простые и довольно сложные.
Самый простой способ — добавить очищающий элемент после последнего столбца, например:
<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):