Кажется, я не могу заставить свой поплавок вести себя так, как я ожидаю. Я пытаюсь создать четыре панели, например, логотип Windows. Проблема в том, что четвертая панель продолжает оставаться на одном уровне с последним блоком верхнего ряда. Я запускаю это в IIS6 в IE7. Он отлично работает на скрипке ниже, а также на IIS7, но я не могу получить такое же поведение в IIS6. http://jsfiddle.net/9GCrm/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
#replist
{
background-color:blue;
float:left;
height:250px;
width:300px;
margin-right:10px;
margin-bottom:10px;
padding:3px;
}
#repedits
{
background-color:blue;
float:left;
height:250px;
width:300px;
margin-bottom:10px;
padding:3px;
}
#mgrslist
{
background-color:blue;
height:250px;
width:300px;
clear:both;
float:left;
margin-right:10px;
padding:3px;
}
#importdiv
{
background-color:blue;
float:left;
height:250px;
width:300px;
padding:3px;
}
</style>
</head>
<body>
<div id="admindiv">
<div id="replist">
</div>
<div id="repedits">
</div>
<div id="mgrslist">
</div>
<div id="importdiv">
</div>
</div>
</body>
</html>
просто удалите clear:both;
из #mgrslist
и вместо этого добавьте его как отдельный класс, например:
<div id="admindiv">
<div id="replist"></div>
<div id="repedits"></div>
<div class="clr"></div>
<div id="mgrslist"></div>
<div id="importdiv"></div>
</div>
Почему это работает? потому что <div class="clr"></div>
очистит float для всех <div class="clr"></div>
до него, но добавление его в класс будет clear:float
только clear:float
для этого конкретного класса, а не pre-divs перед этим классом !!
Кроме того, теперь, когда pseudo classes
вроде :before
и :after
exist, лучше использовать их для clear
float.
Прочтите эту тему, чтобы понять ее лучше: замените clear: оба с псевдокласс