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

时间:2017-12-22 00:34:02

标签: html css validation w3c-validation

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>

1 个答案:

答案 0 :(得分:1)

使用https://validator.w3.org/检查HTML5文档时,您将被重定向到https://validator.w3.org/nu/,因此后者很可能是您正在使用的验证器。

WHATWG的HTML规范introducedstyle 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。维护者“会调查这个”。)