DocType xhtml1-transitional.dtd игнорирует высоту ячейки таблицы - PullRequest
3 голосов
/ 11 декабря 2008
<!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 не заполняет оставшееся пространство. Если я опущу тип документа, он будет работать, как и ожидалось. Мне нужно использовать этот тип документа.

Ответы [ 4 ]

1 голос
/ 17 июня 2010

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

1 голос
/ 17 января 2009

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

https://developer.mozilla.org/en/Gecko's_%22Almost_Standards%22_Mode
1 голос
/ 11 декабря 2008

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

Вы все равно должны использовать <div>, если хотите все делать правильно;)

0 голосов
/ 11 декабря 2008

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

...