W3C Validator并不总是解析内部CSS。我知道这一点是因为,最近几乎没有错误或警告的网页现在都有新发现的 CSS错误。
因此,我的问题是:W3C验证器是否存在任何忽略代码,类似于
<!--googleoff: all--><!--googleon: all-->
对于Google,阻止W3C解析内部CSS?
示例“内部”CSS代码:
<style>
@-ms-viewport
{
width:device-width;
}
button, input[type="button"], input[type="submit"], input[type="reset"]
{
padding-top:8px !important;
padding-right:14px !important;
padding-bottom:9px !important;
padding-left:14px !important;
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
-moz-box-shadow:0px 1px 2px rgba(159,159,159,0.5);
-webkit-box-shadow:0px 1px 2px rgba(159,159,159,0.5);
-khtml-box-shadow:0px 1px 2px rgba(159,159,159,0.5);
box-shadow:0px 1px 2px rgba(159,159,159,0.5);
-webkit-border-radius:2px;
-moz-border-radius:2px;
-khtml-border-radius:2px;
border-radius:2px;
border-width:1px;
border-style:solid;
border-color:#BCBCBC;
background:#f0f0f0;
background:-moz-linear-gradient(top, #f0f0f0 0%, #E0E0E0 100%);
background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0f0f0), color-stop(100%,#E0E0E0));
background:-webkit-linear-gradient(top, #f0f0f0 0%,#E0E0E0 100%);
background:-o-linear-gradient(top, #f0f0f0 0%,#E0E0E0 100%);
background:-ms-linear-gradient(top, #f0f0f0 0%,#E0E0E0 100%);
background:linear-gradient(to bottom, #f0f0f0 0%,#E0E0E0 100%);
filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0f0f0', endColorstr='#E0E0E0',GradientType=0 );
color:#535353 !important;
font-size:0.928em !important;
font-weight:normal !important;
line-height:normal !important;
}
button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover, button:focus, input[type="button"]:focus, input[type="submit"]:focus, input[type="reset"]:focus
{
background:#f8f8f8;
background:-moz-linear-gradient(top, #f8f8f8 0%, #E1E1E1 100%);
background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#E1E1E1));
background:-webkit-linear-gradient(top, #f8f8f8 0%,#E1E1E1 100%);
background:-o-linear-gradient(top, #f8f8f8 0%,#E1E1E1 100%);
background:-ms-linear-gradient(top, #f8f8f8 0%,#E1E1E1 100%);
background:linear-gradient(to bottom, #f8f8f8 0%,#E1E1E1 100%);
filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#f8f8f8', endColorstr='#E1E1E1',GradientType=0 );
}
button:active, input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active
{
-moz-box-shadow:inset 0px 1px 2px rgba(205,205,205,1);
-webkit-box-shadow:inset 0px 1px 2px rgba(205,205,205,1);
-khtml-box-shadow:inset 0px 1px 2px rgba(205,205,205,1);
box-shadow:inset 0px 1px 2px rgba(205,205,205,1);
background:#E0E0E0;
text-decoration:none !important;
}
</style>
答案 0 :(得分:1)
使用https://validator.w3.org/检查HTML5文档时,您将被重定向到https://validator.w3.org/nu/,因此后者很可能是您正在使用的验证器。
WHATWG的HTML规范introduced对style
element内容的此要求:
style
元素的child text content必须是conformant style sheet的元素。
这意味着:如果您想拥有有效的WHATWG-HTML文档,那么style
元素中的CSS也必须有效。以前不是这种情况。
但是,截至2017-12-26,W3C的HTML规范对style
element没有此要求。除非他们添加了这个要求,否则W3C-HTML文档即使在style
元素中包含无效的CSS也仍然有效。然后,W3C托管的验证器实例可能会禁用此CSS检查功能。
(前几天,用户asked for a switch in the validator to disable checking the CSS。维护者“会调查这个”。)