html doctype添加空格?

时间:2010-06-01 22:14:41

标签: html firefox rendering xhtml-1.0-strict

有人可以向我解释为什么要有

的doctype

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">

在firefox下以不同方式呈现以下块?

<table style="border-collapse:collapse; margin:0; padding:0;">
    <tr>
        <td style="border:1px solid red; margin:0; padding:0;"><img src="http://images.smh.com.au/2010/06/01/1533814/th_park-90x60.jpg" style="border:none; padding:0; margin:0;" /></td>
    </tr>
</table>

使用'Transitional',图像下方没有空白区域,使用'Strict'就可以了!

第二个问题,使用strict,是否可以删除这个空格?

4 个答案:

答案 0 :(得分:14)

正如您在this table中看到的,所有浏览器中的第一个Doctype triggers怪癖模式,second将触发标准模式。

本故事的其余部分将在Images, Tables, and Mysterious Gaps继续:

  

Setting images to be blocks

     

第一个选择,一个选择   最具图形性的工作   设计,是转换图像   是一个内联元素   块级元素。那样做吧   不再生成线框,等等   问题消失了 - 假设那样   图像是唯一的   占据那个表格单元格。在里面   最简单的情况,我们可能会添加一种风格   像这样:

td img {display: block;}

答案 1 :(得分:1)

我怀疑标记中的空白区域(例如,使表格代码清晰易读的换行符和制表符)是错误的。之前我遇到过类似的问题,标记中的空格导致屏幕上出现恼人的空间,即使它看起来并不重要(例如,在<li>标签之间)。

尝试将表格标记折叠到一个冗长的行上。

答案 2 :(得分:0)

不确定为什么会出现空间。就修复而言,如果你不介意明确设置表格单元格的高度,你可以添加display:block;和身高:60px;你的td风格。

答案 3 :(得分:0)

第一个DOCTYPE将在almost standards mode中呈现您的网页:

  

“几乎标准”模式渲染在除了一个之外的所有细节中匹配“标准”模式。表单元格内部图像的布局处理方式与“怪癖”模式的操作方式相同。

第二个DOCTYPE将以标准模式呈现您的页面。