Мой класс-обертка ничего не "держит" - PullRequest
3 голосов
/ 24 февраля 2010

У меня есть довольно простой кусочек кода. Это выглядит так:

<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Home Index Test</title>
    <link rel="stylesheet" type="text/css" href="reset.css" media="all">
    <link rel="stylesheet" type="text/css" href="styles.css" media="all">

<!--    <script type="text/javascript" src="view.js"></script> -->
</head>
<body>

<div id="wrapper">
    wrapper
    <div id="header">
        <div id="logo">
               <img src="kimchi_img/bibi_logo.jpg">
        </div>

        <div id="login_menu">
            <p>About  Contact | Sign In  Register </p>
        </div>
    </div>
</div>

</body>
</html>

Легко, правда? Класс-обертка для объединения всего, блок заголовка с логотипом и меню. Но когда я смотрю на него в Firebug, он действует так, как будто класс-обертка ничего не содержит. Я знаю, что в Firefox элемент div должен содержать что-то для отображения. Поэтому я попробовал небольшой тест - я поместил слово «обертка» в класс обертки, как вы видели выше. Что ж, теперь он обнаруживается, но действует так, будто «обертка» имеет длину только одну строку. Я чувствую, что пропустил важный шаг в этом процессе. Вот соответствующий CSS:

#wrapper {
    clear:both;
    margin:0 auto;
    padding:0;
    width:960px;
}

#header{
    width:960px;
}

#logo{
    float:left;
    width: 380px;   
}

#login_menu{
    float:left;
    text-align: right;
    width:580px;
}

У меня также есть reset.css мурлыканье в спину, но оно не прояснилось.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2010

Всякий раз, когда у вас есть контейнер, содержащий плавающие элементы, контейнер рухнет, если вы не укажете явное значение overflow для контейнера. Добавьте это к #wrapper или #header:

overflow: hidden;

Теперь это (конечно) завершится неудачей в IE6. Чтобы обойти эту ошибку, я обычно добавляю следующее к правилам:

-height: 1px;
-overflow: auto;

Здесь я использую хак - для таргетинга IE6, но если вы предпочитаете не использовать хаки, просто переместите эти два свойства (без дефисов) в отдельную таблицу стилей и свяжите ее с помощью условных комментариев.

1 голос
/ 24 февраля 2010

Другое решение было бы добавить пустой div с

style="clear:both;"

внизу оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...