W3C CSS验证: “解析错误}”
我用下面的CSS:W3C CSS验证: “解析错误}”
.tm-navbar {
position: relative;
z-index: 9999;
}
@media (min-width: 768px) {
.tm-navbar {
background: -moz-linear-gradient(top, rgba(33, 33, 33, 0.25) 0%, rgba(33, 33, 33, 0) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(33, 33, 33, 0.25) 0%, rgba(33, 33, 33, 0) 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to bottom, rgba(33, 33, 33, 0.25) 0%, rgba(33, 33, 33, 0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#40212121', endColorstr='#00212121', GradientType=0); /* IE6-9 */
}
}
@media (max-width: 767px) {
.tm-navbar {
position: relative;
z-index: 9999;
background-color: #212121!important;
}
}
Acording到W3C验证,它有13行错误:
线13 .tm-导航栏解析错误}
您使用的是非标准的属性值filter
progid:DXImageTransform.Microsoft
显然是微软唯一的财产。由于它不符合任何标准值,它会被标记。
其他值是供应商的前缀,但可能包含在其中,因为您不应再使用供应商前缀CSS。
这是正确的答案。但是为了这里的记录,我想在https://github.com/w3c/css-validator/pull/134添加,我已经提出了对CSS验证器源的pull请求,这会导致CSS验证器将' progid:DXImageTransform.Microsoft'作为“供应商扩展” - 这意味着问题片段不会再导致解析器失败,并且如果您选择将“供应商扩展”案例视为警告而不是错误的选项,会发出警告;否则会发出错误消息,表示该值不被允许。 – sideshowbarker
@sideshowbarker但是,供应商扩展名不应该以连字号为前缀,因为在这种情况下,'-ms-'?允许'progid'设置先例会有危险吗? – Rob
是的,微软应该在多年前为它添加对IE的支持 - 但不幸的是,他们没有,现在我们仍然坚持使用它,至于决定如何处理它。实际情况是,开发人员仍然在样式表中使用它,为过去的IE版本的用户提供过滤效果,它仍然出现在主要站点的许多样式表中。所以就选择如何在CSS检查器中处理它而言,它实际上并不会产生错误,因为那些使用它的开发人员会被视为噪声,因为他们故意使用它。 – sideshowbarker
请指出线13 –
看来此行是给错误:过滤器:进程id:DXImageTransform.Microsoft.gradient(startColorstr = '#40212121',endColorstr = '#00212121',GradientType = 0) ;/* IE6-9 */ –