относительное и абсолютное позиционирование в IE и FF - PullRequest
0 голосов
/ 22 января 2010

Я хочу, чтобы div увеличивался, когда вы добавляете в него больше контента, он имеет по крайней мере высоту области просмотра, имеет верхний и нижний колонтитулы, прикрепленные к верху и низу. Я придумал следующее, которое отлично работает в IE7, но не работает в ff3.5.

Это HTML-код (добавьте повторяющиеся 'Много текста
', чтобы main_body вырос из области просмотра):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Testing 123</title> 
<link rel="stylesheet" href="css/testing.css">
</head>
<body>
<div id="main_body">
    <div id="header"></div>    
    <div id="content">
    Lots of text<br>
    </div>
    <div id="footer"></div>    
</div>
</body>
<html>

Это css:

* {
    margin: 0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    border: none;
    z-index: 10;
    font-family: Arial;
    font-size: 20px;
    text-decoration: none;
    text-align: left;
    }
html, body {
    height: 100%;
    background-color: rgb(255, 255, 255);
    }
#main_body {
    position: relative;
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0px 20px 0px 20px;
    }
#header {
    position: absolute;
    top: 20px;
    left: 0px;
    height: 50px;
    width: 100%;
    background-color: rgb(40, 40, 40);
    }
#content {
    margin: 80px 10px 50px 10px;
    }    
#footer {
    position: absolute;
    bottom: 20px;
    left: 0px;
    height: 20px;
    width: 100%;
    background-color: rgb(40, 40, 40);
    }

Я думаю, что это должно работать в соответствии со спецификациями. И это в IE, но не в ff3.5. Пожалуйста, помогите.

EDIT: Я обнаружил (благодаря Jeepstone), что он отлично работает, когда я изменяю поле на отступ в #content.

Ответы [ 3 ]

1 голос
/ 22 января 2010

На самом деле это не работает для меня в браузерах IE8, FF3.5, Webkit и Opera.

Я не могу вспомнить фактическую причину, но если вы добавите что-то, например, &nbsp; после div "main_body" работает.

<div id="main_body">&nbsp;
1 голос
/ 22 января 2010

100% высота не прямолинейна. Вам нужно сделать что-то вроде http://www.xs4all.nl/~peterned/examples/csslayout1.html.

Между прочим, когда вы сбрасываете *, вы должны посмотреть на Эрик Мейерс CSS Reset http://meyerweb.com/eric/tools/css/reset/, поскольку сброс всего может вызвать проблемы.

0 голосов
/ 22 января 2010

У меня работает в FF 3.5.7. Вы также можете попытаться установить позиционирование относительно статического, что может решить его. Дайте мне знать!

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