添加文档类型时的样式中断

问题描述 投票:0回答:3

我正在开发一个网站,该网站在后端使用 PHP(带有适用于 MVC 的 Savant 模板),在前端使用 HTML4 和 CSS3。我使用了一些字体嵌入和透明度。我用于该网站的文档类型如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

但是,接下来发生的事情是这样的。地狱崩溃了。我的字体大小到处都缩小到 1em 左右,并且填充变成 0px。我不明白为什么会发生这种情况。

此外,由于我嵌入了两种字体,其中一种在大小和样式上运行良好,但另一种字体在 IE 上完全丢失。它以 1m 字体大小显示在 Times New Roman 中。

如果有人知道这个问题的解决方案,我恳请您帮助我。谢谢。 :)

html css doctype
3个回答
1
投票

如果我理解正确的话,您在完成所有 css 编码后添加了文档类型。

如果这是正确的,那么首先不包含文档类型就是一个坏主意。文档类型定义确保浏览器不会以“怪异模式”呈现。在怪异模式下,每个浏览器应用完全不同的默认样式规则,并且具有完全不同的渲染行为。 应用文档类型并让浏览器使用标准模式是很好的做法,因为它减少了浏览器之间的差异 - 剩下的差异仍然比您每天想要处理的要多。


1
投票

您添加的文档类型会触发标准模式,其中浏览器是:

更符合规格
  • 彼此更加一致(由于上述原因)
  • 对错误的容忍度较低(同上)。
  • 确保您的 HTML 和 CSS 都是
有效

,并且您正确使用它们。


1
投票

在我看来,添加文档类型是将页面切换到标准模式(这是正确的),但它的渲染与您期望的不同,因为您最初构建它时没有文档类型。

就解决具体问题而言 - 如果没有看到实例,这很难做到,但我会确保你的所有字体大小都有单位,没有任何地方有拼写错误等。(你可以通过运行你的CSS W3C 的验证器进行双重检查)。

您的“嵌入”字体是指网络字体吗?如果没有,除非本地安装,否则该字体不会出现。

希望这有帮助!将来,当您开始编码时,一定要包含文档类型,因为这将减轻很多这些问题。

© www.soinside.com 2019 - 2024. All rights reserved.