CSS: минимальная высота не работает - PullRequest
3 голосов
/ 06 июня 2009

Всякий раз, когда я добавляю свойство min0height к DIV, чтобы сделать их 100%, оно не работает. Я добавил их во все DIV, включая высоту: 100%; и минимальная высота: 100%; но ничего не работает. Что бы я сделал, чтобы он продлил весь путь? Он просто обрезает фон боковой панели и цвет фона области содержимого.

alt text

(Забыл пометить деталь. Область содержимого на белом фоне - .col1)

CSS:

@charset "UTF-8";
/* CSS Document */

img {
    border-style: none;
    color: #FFF;
    text-align: center;
}
body {
    background-color:#000;
    margin:0;
    padding:0;
    border:0;           /* This removes the border around the viewport in old versions of IE */
    width:100%;
}
.sidebar {
    background-image:url(../images/sidebar/background.png);
    background-repeat:repeat-y;
    font: 12px Helvetica, Arial, Sans-Serif;
    color: #666;
    z-index:1;
}
.menu {
    background-image:url(../images/top_menu/background.png);
    background-repeat:repeat-x;
    height:25px;
    clear:both;
    float:left;
    width:100%;
    position:fixed;
    top:0px;
    z-index:5;
    background-color:#000;
}
.bottom_menu {
    background-image:url(../images/bottom_menu/background.png);
    background-repeat:repeat-x;
    height:20px;
    z-index:2;
    font: 12px Helvetica, Arial, Sans-Serif;
    clear:both;
    float:left;
    width:100%;
    position:fixed;
    bottom:0px;
}
.colmask {
    position:relative;      /* This fixes the IE7 overflow hidden bug and stops the layout jumping out of place */
    clear:both;
    float:left;
    width:100%; /* width of whole page */
    overflow:hidden;    /* This chops off any overhanging divs */
}
.sidebar .colright {
    float:left;
    width:200%;
    position:relative;
    left:225px;
    background:#fff;
}
.sidebar .col1wrap {
    float:right;
    width:50%;
    position:relative;
    right:225px;
}
.sidebar .col1 {
    margin:30px 15px 0 225px; /* TOP / UNKNOWN / UNKNOWN / RIGHT */
    position:relative;
    right:100%;
    overflow:hidden;
}
.sidebar .col2 {
    float:left;
    width:225px;
    position:fixed;
    top:0px;
    left:0px;
    margin-top:25px;
    margin-left:5px;
    right:225px;
}
.clear {
    clear: both;
    height: 1px;
    overflow: hidden;
}

HTML

<body>
<div id="container">
<div class="menu">Header Content</div>
<div class="colmask sidebar">
    <div class="colright">
      <div class="col1wrap">
            <div class="col1" id="contentDIV">
                Content
            </div>
        </div>
        <div class="col2">
            Sidebar Content
        </div>
    </div>
</div>
<div class="bottom_menu">Footer Content</div>
</div>
</body>

Ответы [ 3 ]

2 голосов
/ 06 июня 2009

Fixed. Это был контейнерный элемент сразу после тега body. Даже с высотой CSS это создает проблемы. Я удалил его и изменил свой скрипт рендеринга в этом div на document.body, и теперь все работает.

0 голосов
/ 06 июня 2009

Трудно получить консистентную разметку, используя поплавки и позиционирование на тех же элементах. В частности, float и position: fixed (или absolute) несовместимы, и каждый браузер обрабатывает ситуацию по-своему.

IE6 не поддерживает position: fixed вообще и обрабатывает его как position: static (по умолчанию - позиционирование вообще отсутствует).

0 голосов
/ 06 июня 2009

Если вы пытаетесь сделать так, чтобы ваш контент и боковая панель растягивались на всю высоту страницы, то никакие настройки высоты не помогут. Если вы используете 100%, вы собираетесь отодвинуть свой нижний колонтитул от нижней части страницы, поэтому вам нужно прокрутить, чтобы увидеть его. Существует один известный мне метод, который позволит вам иметь тело в полный рост с нижним колонтитулом: Sticky Footer

Проверьте следующий сайт для деталей: http://www.cssstickyfooter.com/

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

Еще один замечательный сайт для изучения CSS - A List Apart .

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