Выравнивание с плавающей точкой CSS не падает

0

Кажется, я не могу заставить свой поплавок вести себя так, как я ожидаю. Я пытаюсь создать четыре панели, например, логотип 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>
Теги:
css-float
iis-6

1 ответ

1
Лучший ответ

просто удалите 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: оба с псевдокласс

  • 0
    ... Почему это работает, а другой нет? Это просто еще одна проблема IE?
  • 1
    @steventnorris: нет, это не проблема IE ( это не значит, что IE не имеет проблем ;)) ... в любом случае ... обновил часть редактирования ... проверьте, поможет ли это вам !! :)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню