这可能是一个愚蠢的问题。我在外部样式表上定义了所有样式,并将它们链接到我的文档,如下所示:
<link rel="stylesheet" type="text/css" href="tema.css" />
我的CSS是这样的:
body {
background: #333;
font-size: 10pt;
color: white;
font-family: sans;
}
#Table {
/* font-size: inherit; */
}
我的<!DOCTYPE>
是这样的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
顺便说一句标准。但是,如果我{/ 1}} 我的文档上的print
声明之前的任何,我的CSS样式会中断吗?
如果我这样做:
<!DOCTYPE>
我的表的foo
<!DOCTYPE … >
<html>
<table id="Table">…</table>
</html>
属性被破坏,其中的所有文字都使用我的浏览器的默认font-size
(12磅)进行渲染,但仅文本这是里面表格(我还没有找到另一个问题,这是我迄今为止唯一注意到的问题),并且只有我没有设置表格的具体font-size
,直接font-size
或10pt
:
但是,如果我这样做(将inherit
放在回显之前):
<!DOCTYPE>
或者这个(为表格设置一个特定的<!DOCTYPE … >
foo
<html>
<table id="Table">…</table>
</html>
,即使在回显文本之后font-size
>):
<!DOCTYPE>
一切似乎都运转良好:
问题是:为什么?这件事发生在其他人身上吗?这是一个错误吗?我应该报告吗?
这里是关于pastebin的test document所以你可以玩它。
注意:
这种情况发生在谷歌Chrome,IE,Firefox,Opera,Midori甚至我的Android内置浏览器上。
我只是为了调试目的而回复该文字,所以它不是那么必要,我可以将body {
…
}
#Table {
font-size: inherit;
}
留在顶部,但是把它放在那里感觉不对,它和只是因为我无法找到与<!DOCTYPE>
声明的位置相关的此行为的任何信息。
答案 0 :(得分:3)
这不是一个错误。
在DOCTYPE
之前有任何东西在浏览器中将渲染引擎切换到怪癖模式并使它们像IE5一样(好吧,等等)。
因此,最好的解决方案始终是先输出DOCTYPE
。
在您的情况下问题出在
除了font-family之外,不要将字体属性包含在表中。
请参阅:
https://developer.mozilla.org/en-US/docs/Mozilla_Quirks_Mode_Behavior
https://developer.mozilla.org/en-US/docs/Quirks_Mode_and_Standards_Mode
答案 1 :(得分:2)
首先,你不能在<!DOCTYPE>
之前输出任何内容。 Doctype应该是浏览器在文档中看到的绝对第一,因为它使用doctype来弄清楚如何呈现页面。
网络建立在标准之上,当HTML从根本上被打破时,浏览器会切换到Quirks模式。
答案 2 :(得分:1)
在DOCTYPE声明之前,您不应该有任何用户可读或浏览器解释的文本,因为它指定了您要在文档中使用的内容类型。解决方案就是避免这样做。 DOCTYPE声明之前允许的唯一文本是仅由服务器端读取的文本 - 例如PHP代码,JSP snipplet等等。