gpt4 book ai didi

css - HTML5 与 HTML4 - h1 标签呈现额外的空间 - 如何删除?

转载 作者:太空狗 更新时间:2023-10-29 13:20:29 24 4
gpt4 key购买 nike

我获取了一个 DTD 为 HTML4 Transitional 的页面并将文档类型更改为 <!DOCTYPE html>在它下面的 h1 和 div 之间出现了额外的空间。我没有对标记或 CSS 进行任何其他更改。

JSFiddle 示例:http://jsfiddle.net/ngordon/vSqkg/3/ .

如果将文档类型从 HTML5 更改为 HTML4 Transitional,即使标记和 CSS 完全相同,您也可以看到额外的空间出现和消失。

知道如何摆脱那个空间吗?

最佳答案

HTML 4.01 Transitional 文档类型导致浏览器中的几乎标准模式。 HTML5 文档类型导致标准模式。

这篇 Microsoft 文章解释了差异:http://msdn.microsoft.com/en-us/library/ff405794%28v=vs.85%29 .

它说对于几乎标准模式:

Inline elements contribute to line height if and only if one of the following is true.

If the element:

  • Contains text characters

  • Has a nonzero border width

  • Has a nonzero margin

  • Has a nonzero padding

  • Has a background image

  • Has vertical-align set to a value other than baseline

Note that a line break is not considered a text character for this definition unless it is the only content of a line box. In that case, the line box height remains the uppermost inline box top and the lowermost inline box bottom on the line, regardless of the specified line height.

If an img element is the sole content of a table cell, the line box height of the cell line box height is adjusted to zero.

在您的情况下最关键的是,这意味着计算包含图像的行的高度不包括 strut ,一个假想的内联元素,它应该将行高增加到 h1 元素的行高值。

jsfiddle显示了一个真正的 span 元素,其中   作为代表 strut 的真实文本内容,您可以看到布局与 HTML 4.01 Transitional 文档类型相同和一个 HTML5 文档类型。

jsfiddle展示了相同的想法,只是这次支柱是使用 CSS 制作的,如下所示:

h1:before {
content: '\A0';
}

在 khurram 的回答中,他所做的是减少 h1 的行高,因此,在标准模式下,支柱的高度小于图片。这意味着整个线条的高度是由图像的高度决定的,而不是支柱的高度。图像的高度在标准模式和几乎标准模式下是相同的,所以同样,您看不到模式之间的渲染差异。

至于为什么把h1的line-height设置为匹配图片的高度(25px)不行,设置为12px就可以了,那是因为strut不仅建立了一个顶部和底部,也是该行的基线。基线略高于底部以允许文本下行,对于通常约为 3px 的正常大小的文本。默认情况下,图像位于基线上,因此将基线和底部之间的间隙添加到图像高度以确定线条的高度。

这可以通过使用 img { vertical-align: top } 将图像移离基线来解决,这在 jsfiddle 中显示。 .如果您在这里修改 h1 行高,您会发现大于 25px 的值会增加行间距,但 25px 或更小的值不会改变该间距。

关于css - HTML5 与 HTML4 - h1 标签呈现额外的空间 - 如何删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11206730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com