我的CSS中有以下内容,以便对edit styles
bookmarklet友好,该书签不支持media
标记的style
属性,因此,我明确地使用@media print
作为整个风格。
@media print {
@page {
margin: 1cm;
margin-top: 12mm;
size: portrait;
}
body {
font: 9.3pt "Hoefler Text", "Franklin Gothic Book", sans-serif;
max-width: 80em;
border: 0;
margin: 0 auto;
padding: 0;
}
/* more stuff here */
}
然而,似乎http://jigsaw.w3.org/css-validator/#validate_by_input不喜欢这样,产生以下错误:
7 Parse Error @page { margin: 1cm; margin-top: 12mm; size: portrait; }
16 Parse Error /* more stuff here */ }
但是,如果我将the @page
rule移到@media print
之外,则不会报告任何错误。
我做错了什么,或者这是验证器中的错误?
According to MDN, browser support is pretty new,SO confirms,尽管已经part of the original CSS2 recommendation from 1998,但几乎没有变化。
答案 0 :(得分:1)
引用另一个SO answer:
现在,这里的实际问题是嵌套的
@media
规则是not valid in CSS2.1,因为您不允许在{{1}内嵌套任何 at规则规则。
然而,根据CSS3 spec是可能的,如前面的答案所述。我认为您可以在@media
规则之外安全地移动此规则,因为它本身就是打印文档。引自MDN:
@media print
CSS at-rule用于在打印文档时修改一些CSS属性。