Неправильное отображение min-height в Internet Explorer 6

При верстке сайтов встречается много неожиданностей. Это обусловлено тем, что разные браузеры по разному отображают некоторые элементы разметки. На данный момент Windows XP является одной из самых популярных операционных систем. Так как в поставке с Windows XP идет браузер Internet Explorer 6, то этот браузер следовательно является наиболее используемым. К сожалению, оптимизация сайта под IE6 не всегда очень простое дело, так как в нем многое не поддерживается, или поддерживается частично. В данной статье я расскажу об одной из проблем, связанной с отображением разметки в IE6.

Часто встречается ситуация, когда часть сайта, в смысле располажения элементов в браузере, в которой отображается основной контент, должна иметь высоту не уже заданного размера. То есть если высота контента небольшая, то сайт имеет фиксированную высоту. Если же контент больше фиксированной высоты, то сайт растягивается.

Казалось бы, в чем проблема? Есть элемент CSS min-height. Посмотрим, что получится.

wrongpage.css:

#page
{
    width: 200px;
    background-color: Yellow;
    min-height: 400px;
} 

WrongMinHeight.htm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Wrong Min Height Page</title>
    <link href="wrongpage.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <div id="page">
    1
    <br />
    2
    <br />
    3
    <br />
    4
    <br />
    5
    <br />
    6
    <br />
    7
    <br />
    8
    <br />
    9
    <br />
    10
    </div>
</body>
</html>

Теперь посмотрим отображение в Firefox или Internet Explorer версии выше 6 WrongMinHeight.htm

И посмотрим в IE6 WrongMinHeight.htm

Как видно в IE6 высота div выравнивается под высоту контента. А нужно чтобы она была фиксированного размера.

Что же делать? Выход есть. Изменим CSS следующим образом:

rightpage.css:

#page
{
    width: 200px;
    background-color: Red;
    min-height: 400px;
    height: auto !important;
    height: 400px;
} 

RightMinHeight.htm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Right Min Height Page</title>
    <link href="rightpage.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <div id="page">
    1
    <br />
    2
    <br />
    3
    <br />
    4
    <br />
    5
    <br />
    6
    <br />
    7
    <br />
    8
    <br />
    9
    <br />
    10
    </div>
</body>
</html>

Посмотрим отображение в Firefox или Internet Explorer версии выше 6 RightMinHeight.htm

И посмотрим в IE6 RightMinHeight.htm

Вот теперь все отображается корректно!

сайт , XHTML , CSS


Комментировать

Комментарии

Donkey-schon

09.09.2009 17:24

Так так, Андрюха вышел в отпуск и пошли уникальные посты по программингу. *))) А эксплорер. Да не прибьют меня его поклонники... не люблю его. Глючный он и ему уже ничего не поможет...

20

chyuck

09.09.2009 17:26

Если бы все так думали, то не было бы этого поста. :-)
96 - хорошее число :-)

arusland.blogspot.com

09.09.2009 18:44

2 Donkey-schon
Если не секрет, какой браузер юзаете?

PS Я так понял традиция с числами поселилась и в этот пост :),
смахивает на флешмоб

chyuck

09.09.2009 21:04

Флешмоб - это когда по договренности.
А тут все спонтанно :-)

Donkey-schon

10.09.2009 9:55

2 Arusland.blogspot.com

Не секрет. ФФ версии 3.5 + что-то там. Правда, наш проджект менеджер упорно пытается меня соблазнитиь на хром *)))

128 delta помог посчитать. Растет, паренек на глазах.

arusland.blogspot.com

10.09.2009 10:16

>Не секрет. ФФ версии 3.5 + что-то там. Правда, наш...

Наш человек :)

Хром быстрее конечно, но пока нет тех расширений, которые удобно и часто юзаются мной в огненной лисе.