DocType xhtml1-transitional.dtd игнорирует высоту ячейки таблицы

<!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 runat="server">
    <title>Untitled Page</title>
    <link href="Stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <table style="height: 100%; width: 100%;">
        <tr>
            <td colspan="2" style="height: 100px;">Header</td>
        </tr>
        <tr>
            <td style="width: 180px;">Links</td>
            <td>Content</td>
        </tr>
        <tr>
            <td colspan="2" style="height: 25px;">Footer</td>
        </tr>
    </table>
</body>
</html>

Stylesheet.css выглядит следующим образом:

*
{
    margin: 0;
    padding: 0; 
}
html, body
{
    height: 100%;
    width: 100%;
}

Ряды 1 и 3 выше имеют фиксированную высоту. Строка 3 не заполняет оставшееся пространство. Если я опускаю doctype, он работает как ожидалось. Мне нужно использовать этот тип документа.

11.12.2008 09:36:57
Это не то, что вы хотите услышать, но это недопустимое использование для таблиц - есть ли у вас возможность изменить разметку? (и почему вы не можете изменить тип документа?)
annakata 11.12.2008 09:42:16
Я не слишком уверен, что не так. Возможно, я недостаточно хорошо понимаю ваш вопрос. Я опробовал ваш код в IE и Firefox, и в обеих версиях атрибут height действительно работает. Возможно, вы могли бы уточнить?
Anton 15.01.2009 14:23:27
4 ОТВЕТА

Уточните браузер, в котором вы пытаетесь это исправить.

В <div>любом случае, вы должны использовать 's', если хотите все делать правильно;)

1
11.12.2008 09:43:01
И всякий раз, когда это возможно, он должен использовать более подходящие семантические элементы вместо <div> s.
Kornel 11.12.2008 23:14:22

Я не веб-разработчик, но разве высота не применима только к блочным объектам? Поэтому попробуйте установить высоту TR, а не TD.

0
11.12.2008 10:03:30

Это особенность режима почти стандартов, вызванного Transitional DOCTYPE. Используйте Strict DOCTYPEвместо этого.

https://developer.mozilla.org/en/Gecko's_%22Almost_Standards%22_Mode
1
17.01.2009 15:50:05

Вы будете кричать, если у вас была такая же проблема, как у меня. Попробуйте поставить px после каждого объявления. Это не работает ни в одном браузере для меня без этого обозначения пикселей. Я нахожу эту проблему повсюду и настоящую головную боль.

1
17.06.2010 17:57:11