Возникла проблема с явным исправлением, не работающим с сеткой 960 - PullRequest
0 голосов
/ 19 ноября 2011

Я строил макет с 960 Grid System и столкнулся с проблемой .clearfix.Я не фанат иметь в своем коде дополнительные div-ы для запуска clear, а во ВСЕХ документация по .clearfix представляется как решение.960gs также поставляется с собственным классом clearfix, поэтому я ожидаю, что он должен работать.Однако, когда я применяю тег, ничего не происходит.Класс clear в пустом div работает.В то время как класс clearfix для элемента, который я хочу принудительно очистить после сбоя.Учитывая, что там много о clearfix, это должно быть то, что я пропускаю.

Вот источник:

<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" />
<link rel="stylesheet" type="text/css" media="all" href="css/960.css" />
<link rel="stylesheet" type="text/css" media="all" href="css/text.css" />
<style type="text/css">
    div > div
    {
        height:3em;
        background-color:Lime;
    }
</style>
</head>
<body>
<div class="container_12">
    <div class="grid_4 clearfix"></div>
    <div class="grid_4"></div>
</div>
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 01 июля 2013

Я вернулся к этому и хочу объяснить, что я нашел, было решением и чему я научился.

То есть исправление Clear остановит элементы после того, как контейнер, в котором они находятся, продолжит плавать. Это интересная проблема, которая возникает при использовании float. Однако в этой ситуации легко спутать симптом с причиной.

То, что вы видите, это элементы, div, которые «плавают» друг в друге, когда не должны, потому что они находятся в отдельных контейнерах. Предполагается, что это потому, что вы не очистили поплавок. Кроме того, существует много решений этой проблемы, которые включают добавление элемента в разметку для «очистки поплавка». Этот элемент обычно имеет «clear: both» как стиль и точку или «& nbsp»; как это содержание. Похоже, что это решает проблему, но в конечном итоге является взломать, чтобы решить другую проблему.

Настоящая проблема в том, что контейнер, в котором есть только плавающие элементы, в конечном итоге не имеет объема. Если у вас есть два контейнера, один за другим, с плавающими объектами, похоже, что плавающий объект не очищается, поскольку оба контейнера разрушаются и макет нарушается. Однако решение состоит в том, чтобы добавить свойство переполнения в контейнеры. В моем случае это было «переполнение: авто».

В «классическом» прозрачном фиксированном растворе добавьте элемент, который не имеет поплавка, и объем, чтобы контейнер, содержащий все, не разрушался и поддерживал некоторую форму объема. Однако это реальная проблема, связанная с установкой свойства переполнения.

0 голосов
/ 19 ноября 2011

Вы должны будете применить класс clearfix к родительскому контейнеру, чтобы это работало.

<div class="container_12 clearfix">
    <div class="grid_4"></div>
    <div class="grid_4"></div>
</div>
...