我正在开发一个在后端使用PHP(使用Savant模板化MVC)和前端使用HTML4和CSS3的网站。我使用了一些字体嵌入和透明度。我用于该网站的doctype如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
然而,这就是发生的事情。地狱破裂了。我的字体大小减少到大约1em左右,填充变为0px。我不明白为什么会这样。
此外,由于我嵌入了两种字体,其中一种字体和样式工作正常,但另一种字体在IE上完全丢失。它出现在Times New Roman中,字体大小为1米。
如果有人知道这方面的解决方案,我恳请您帮助我。谢谢。 :)
答案 0 :(得分:1)
浏览器有多种呈现模式,其中两个关键模式(标准和怪癖)由Doctype触发(假设使用某些Doctypes的作者知道他们在做什么以及使用其他人的作者,或者没有使用Doctype的作者)
您添加的Doctype触发标准模式,其中浏览器为:
确保您的HTML和CSS都是valid,并确保您正确使用它们。
答案 1 :(得分:1)
如果我理解你,你在完成所有css编码后添加了doctype。
如果这是对的,那么首先不包括doctype是一个坏主意。 doctype定义确保浏览器不在quirks mode中呈现。在怪癖模式下,每个浏览器都应用完全不同的默认样式规则,并且具有完全不同的呈现行为。
应用doctype并让浏览器使用标准模式是一种很好的做法,因为它可以减少浏览器之间的差异 - 还有更多的东西,比你每天要处理的还多。
答案 2 :(得分:1)
没有doctype的页面将以Quirks模式呈现,而带有doctype的页面将以Standards模式呈现(好吧,假设doctype本身是正确的,并且页面上没有其他内容触发Quirks模式)。
在我看来,添加doctype就是将页面切换到标准模式(这是正确的),但它的渲染方式与您期望的不同,因为您最初在没有doctype的情况下构建它。
在修复特定问题方面 - 如果没有看到实例,就更难做到,但我会确保你的所有字体都有单位,不要在任何地方打字,等等。(你可以运行你的CSS通过W3C的验证器进行仔细检查)。
使用“嵌入式”字体,您在谈论网络字体吗?如果没有,除非在本地安装,否则不会显示该字体。
希望这有帮助!将来,当您开始编码时,肯定会包含doctype,因为这样可以缓解很多这些问题。