如何validationCSS中的供应商前缀,如-webkit-和-moz-?

我使用webkit / mozilla边框半径和框阴影CSS属性,但我想CSSvalidation(目前没有)。 有没有办法让它validation?

http://jigsaw.w3.org/css-validator/

不,它们是浏览器特定的属性,并没有在标准CSS规范中定义。

这就是说,他们正确地遵循CSS的供应商特定扩展的规则。 这只是在W3C官方CSS规范。

尽pipe在CSS3语法模块中提到了供应商扩展的语法,并将其引入到语法中以允许供应商实现自己的前缀而忽略标准,但实际的供应商扩展本身不被识别为官方CSS属性。 这不会改变,因为它们是专有的,特定于发明和使用它们的供应商。

但是,最近对Jigsaw W3C CSS Validator的增强( 2011年初 )使得可以减less由供应商扩展引发的警告所引发的validation错误 。 通过展开更多选项部分,find这个新的选项,比如CSS的级别来validation。

这样可以更容易地find样式表中真正的问题,如果它仍然没有validation。 如果供应商扩展是唯一触发错误的东西,将它们转换为警告将允许您的样式表暂时validation。 它也消除了在独立样式表中维护供应商扩展的必要,您必须将其隐藏到validation器中。

警告是最能避免错误的,尽pipe如此,最终,供应商前缀仍然是非标准的,因此技术上无效的CSS。

这部分可能。 收集所有不支持的CSS类在一个文件(css3.css)

例:

css3.css

.round{ -moz-border-radius-bottomleft: 5px; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; border-bottom-left-radius: 5px 5px; border-bottom-right-radius: 5px 5px; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; -webkit-border-bottom-left-radius: 5px 5px; -webkit-border-bottom-right-radius: 5px 5px; -webkit-border-top-left-radius: 5px 5px; -webkit-border-top-right-radius: 5px 5px; } 

default.css

  .square{ width: 100px; height: 100px; border: 1px solid #000000; } 

page.html中

 <html> <head> <link rel="stylesheet" type="text/css" href="default.css"> <script type="text/javascript"> document.write('<link rel="stylesheet" type="text/css" href="css3.css">'); </script> </head> <body> <div class="square round"></div> </body> </html> 

search引擎不运行客户端脚本,所以你的W3C不支持的属性不会损害你的search引擎优化。 至于绿色的CSSvalidation,抱歉,还没有。

不,因为它们不是validation者validation的标准的一部分。 想到的唯一解决scheme是将不兼容的属性放入单独的样式表中。

Mozilla和WebKit的特定属性将不会被validation。 你可以做的是分离你的“丰富”的CSS到一个单独的样式表。 就像你把你的黑客样式分离出你的主样式表一样。 这样你的基础样式表将被validation。

如果您为我的“无效的”或“特定于浏览器的”CSS使用单独的CSS文件,那么请使用一点PHP从validation程序中筛选出该CSS:

 <?php if(preg_match("/jigsaw.w3c.org/i", $_SERVER['HTTP_HOST'])){ echo '<link rel="stylesheet" href="invalid.css" type="text/css" media="screen, projection" />'; } ?> 

然后链接到CSS3validation器作为configuration文件(接受边框半径,文字阴影等):

http://jigsaw.w3.org/css-validator/check/referer?profile=css3

$ _SERVER ['HTTP_HOST']不起作用,但也许会有什么?

2011年12月12日

卡米真的发布了最好的解决scheme。 我创build一个单独的css3.js文件和document.write(''); 一行一行的CSS:

CSS3.js

 document.write('\ <style type="text/css">\ home_low_mod {zoom: 1;}\ #home_module {-moz-border-radius: 8px;-webkit-border-radius: 8px;-moz-box-shadow: 0px 1px 3px #a5a6a2;-webkit-box-shadow: 0px 1px 3px #a5a6a2;behavior: url(PIE.htc);}\ #page {-moz-border-radius: 8px 8px 0 0;-webkit-border-radius: 8px 8px 0 0;behavior: url(PIE.htc);}\ </style>'); 

@BoltClock是完全正确的在这一个… W3C确实增加了一个vextwarningBOOLsearch条件。 它没有logging…但是如果你正在使用他们的SOAP APIvalidation,你可以添加一个参数到您的validationGET请求的有效载荷….

&vextwarning=true

例如…如果你想在TextMate中编辑CSSvalidation器命令…你会“编辑捆绑…”, 又名 ^ + + + B

 #!/usr/bin/env ruby print '<html><head><meta http-equiv="Refresh" content="0; URL=' print 'http://jigsaw.w3.org/css-validator/validator?\ warning=0&profile=none&usermedium=all&text=' scope = STDIN.read … 

更多的东西 – 更多的喜欢

 #!/usr/bin/env ruby print '<html><head><meta http-equiv="Refresh" content="0; URL=' print 'http://jigsaw.w3.org/css-validator/validator?\ warning=2&vextwarning=true&profile=css3&usermedium=all&text=' scope = STDIN.read … 

请注意,我还添加了一个level=css3并更改了warninglevel 。 根据需要改变这些API。

如果你想通过“在线”提交机制查看所有可用的参数….打开Firebug或Webkit检查器等,同时通过表单提交查询并查看full request content以获取甚至更多的select,根据需要…

webkit检查员的css3验证