2017-10-21 86 views
0

我用下面的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-导航栏解析错误}

+0

请指出线13 –

+0

看来此行是给错误:过滤器:进程id:DXImageTransform.Microsoft.gradient(startColorstr = '#40212121',endColorstr = '#00212121',GradientType = 0) ;/* IE6-9 */ –

回答

3

您使用的是非标准的属性值filter

progid:DXImageTransform.Microsoft显然是微软唯一的财产。由于它不符合任何标准值,它会被标记。

其他值是供应商的前缀,但可能包含在其中,因为您不应再使用供应商前缀CSS。

https://developer.mozilla.org/en-US/docs/Web/CSS/filter

+0

这是正确的答案。但是为了这里的记录,我想在https://github.com/w3c/css-validator/pull/134添加,我已经提出了对CSS验证器源的pull请求,这会导致CSS验证器将' progid:DXImageTransform.Microsoft'作为“供应商扩​​展” - 这意味着问题片段不会再导致解析器失败,并且如果您选择将“供应商扩​​展”案例视为警告而不是错误的选项,会发出警告;否则会发出错误消息,表示该值不被允许。 – sideshowbarker

+0

@sideshowbarker但是,供应商扩展名不应该以连字号为前缀,因为在这种情况下,'-ms-'?允许'progid'设置先例会有危险吗? – Rob

+0

是的,微软应该在多年前为它添加对IE的支持 - 但不幸的是,他们没有,现在我们仍然坚持使用它,至于决定如何处理它。实际情况是,开发人员仍然在样式表中使用它,为过去的IE版本的用户提供过滤效果,它仍然出现在主要站点的许多样式表中。所以就选择如何在CSS检查器中处理它而言,它实际上并不会产生错误,因为那些使用它的开发人员会被视为噪声,因为他们故意使用它。 – sideshowbarker