当DOCTYPE是XHTML 1.0 Strict时,为什么高度不等于它内部的高度?

前端之家收集整理的这篇文章主要介绍了当DOCTYPE是XHTML 1.0 Strict时,为什么高度不等于它内部的高度?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
</head>
<body>

<table width="100%" cellspacing="0" cellpadding="0">
    <tr>
        <td align="right" colspan="5">
            <span class="validationInline">*</span> 
            <span class="hint">required fields</span>
        </td>
    </tr>
    <tr>
        <td colspan="5" background="http://media.monster.com.hk/bgr_8.gif">
            <img src="/static/cleardot.gif" height="1" width="1" />
        </td>
    </tr>
</table>

</body>
</html>

可以在这里查看:
http://maishudi.com/tt2.html

我知道它是由DOCTYPE引起的,因为删除该部分会使其正常:

http://maishudi.com/tt.html

那有什么不对?我怎样才能让它与DOCTYPE一起工作?

解决方法

注意:这可能取决于浏览器.
块级元素(td,div等)的大小(如果未指定)将根据其内容占用的空间大小而不是所需的大小.如果指定,它将尝试相应地扩展,除非内容更大,在这种情况下它将根据需要扩展.

在您的示例中,单元格包含单个字符(非中断空格),其大小为单行.因此,块元素必须至少为1行高;它不能假设任何更小的尺寸.这就是你的高度声明被忽略的原因.

您可能想要使用此样式:

line-height: 1px;

这将行高设置为1px.行高不是元素,因此上述规则不适用.

猜你在找的HTML相关文章