CSS-столбец полной высоты - PullRequest
1 голос
/ 21 июля 2010

У меня есть следующий HTML-код для построения центрированной страницы шириной 900 пикселей с заголовком, нижним колонтитулом и разделом содержимого:

<body>
    <div id="mainMaster">
        <div id="main">
            <form runat="server">
            <div id="header">
            </div>
            <div id="content">
            </div>
            </form>
        </div>
    </div>
    <div id="footer">
    </div>
</body>

Макет оформлен с использованием следующего (приблизительно) CSS:

html, body
{
    height: 100%;
}

#mainMaster
{
    min-height: 100%;
    background: url(../Images/Background.png);
}

#main
{
    width: 930px;
    margin: 0 auto;
    height:auto !important; /* real browsers */
height:100%; /* IE6: treaded as min-height*/
min-height:100%; /* real browsers */
}

#header
{
}

#footer
{
    background-image:none;
    background-color:White;
    position: relative;
    margin-top: -80px; /* negative value of footer height */
    margin-left: auto;
    margin-right: auto;
    width: 930px;
    height: 80px;
    clear: both;
}

#content
{
    position:relative;
    overflow:hidden;
    height:100%;
background-image:none;
background-color:White;
}

Первоначально CSS был основан на макете, который я нашел в интернете для «липких нижних колонтитулов».Он отлично работал с липким нижним колонтитулом, но потом я столкнулся с такими проблемами:

1) «Контент» никогда не растягивается до полного размера.Это большая проблема на некоторых моих страницах, потому что внутренний контроль установлен на 100%.Поскольку содержимое не растягивается, элементы управления отображаются полностью сжатыми.

2) Я только что добавил фоновое изображение и цвет.Этот фон не должен отображаться на средних панелях содержимого.Поскольку «содержимое» не полностью растянуто, я получаю фоновое изображение, отображаемое в неправильных местах.

Я предпочитаю только CSS исправить это (т.е. без хаков или JS).Любая помощь?

Ответы [ 3 ]

1 голос
/ 21 июля 2010

Я ожидаю, что удаление #mainMaster <div> и перемещение его фонового изображения в CSS # main решит вашу проблему:

<body>    
    <div id="main">
        <form runat="server">
            <div id="header"></div>
            <div id="content"></div>
        </form>
    </div>
    <div id="footer"></div>
</body>

Проблема, с которой вы сталкиваетесь, состоит в том, что у родителя # main (#mainMaster) нет объявленной явной высоты. Высота в процентах работает правильно только тогда, когда для родительского элемента задана высота.

0 голосов
/ 01 августа 2010

Добавление определенного цвета фона к #content и #header должно препятствовать отображению фонового изображения в этих областях. Не уверен, почему контент не заполняет область, когда вы говорите «растянутый», вы имеете в виду рост до 100%? Браузеры не распознают высоту 100% без использования js.

0 голосов
/ 21 июля 2010

Попробуйте использовать min-height свойство CSS, чтобы установить минимальную высоту для вашего контента.

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