Я пытаюсь создать простой макет из одной колонки. Я хочу, чтобы верхние два ряда имели меньшую фиксированную высоту. Третий ряд должен расшириться, чтобы заполнить остальную часть страницы. Вот мой текущий источник:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
html, body
{
height:100%;
width:100%;
border:0px;
margin:0px;
}
</style>
</head>
<body>
<table style="width:100%;height:100%;" cellpadding="0" cellspacing="0">
<tr>
<td style="height:50px;background:red;">Header 1</td>
</tr>
<tr>
<td style="height:10px;background:blue;">Header 2</td>
</tr>
<tr>
<td style="background:green;">Content</td>
</tr>
</table>
</body>
</html>
Это прекрасно работает в Safari, Firefox и Opera. Тем не менее, он терпит неудачу в IE6 и IE7. В этих двух браузерах первые две строки отображаются намного больше их указанных высот. Мало того, но они на самом деле динамически изменяют размеры с высотой окна браузера. Как будто IE конвертирует постоянную высоту пикселя в процентную высоту.
Для меня важно, чтобы в окне браузера не отображались полосы прокрутки, если содержимое третьей строки не достаточно велико, чтобы этого потребовать. Установка высоты 3-го
на 100% приведет к тому, что эти полосы прокрутки будут всегда появляться, поскольку высота этой строки будет фактически установлена равной высоте всей таблицы (это будет 100% ее содержащего элемента). 1007 *
Удаление объявления doctype и возврат в режим причуд, похоже, устраняют проблему в IE, но мне нужно использовать переходный HTML 4.01, поскольку именно этого ожидают все другие существующие страницы в этом приложении.