如何防止 W3C Validator 解析内部 CSS?

How to prevent W3C Validator from parsing internal CSS?

W3C Validator 并不总是解析内部 CSS。我知道这一点是因为,就在最近,以前既没有错误也没有警告的页面现在有了 新发现的 CSS 错误。

因此,我的问题是:W3C Validator 是否存在任何忽略代码,类似于

<!--googleoff: all--><!--googleon: all-->

for Google,以防止 W3C 解析内部 CSS?

样本"Internal"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>

当使用 https://validator.w3.org/, you’ll get redirected to https://validator.w3.org/nu/ 检查 HTML5 文档时,后者可能是您正在使用的验证器。

WHATWG 的 HTML 规格 introduced this requirement for the content of a style element:

The child text content of a style element must be that of a 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。维护者"will look into this"。)