我是条件CSS的新手.我的问题是,用它来处理跨浏览器问题是否正确?
例如:
#header
{
[if IE 7] width: 600px;
[if Webkit] width:300px;
}
Run Code Online (Sandbox Code Playgroud)
编者注:OP最有可能使用这个:http://www.conditional-css.com/
对实际的CSS文件(或类)使用条件语句,但是在html上.
像这样例如:
<!--[if lte IE 6]>
<link href="css/layoutIE6.css" rel="stylesheet" type="text/css" />
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
这是写在html文件上,而不是CSS文件!
您发布的格式我认为实际上并不起作用,我敢打赌它不会验证,所以它不是标准的.
在IE中使用这种技术的变体已经变得很普遍了,我相信它受到HTML5 Boilerplate的欢迎 [需要引证]:
<!--[if lt IE 7]> <html lang="en-us" class="ie6"> <![endif]-->
<!--[if IE 7]> <html lang="en-us" class="ie7"> <![endif]-->
<!--[if IE 8]> <html lang="en-us" class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us"> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)
现在你可以在主CSS文件中定位没有IE hacks的元素,如下所示:
.ie6 .header li {
/* some ie6 only styles here */
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这比使用单独的样式表更容易维护,但是遭受其他浏览器读取(但不适用)IE样式的轻微挫折.
如果您在使用Webkit时遇到问题,那么您很可能做错了什么.不是绝对的,但很有可能.
编辑:许多浏览器允许使用专有扩展,允许您设置仅适用于该浏览器的规则.例:
-moz-property {}
-webkit-property {}
-o-property {/* Opera */}
Run Code Online (Sandbox Code Playgroud)
请注意,这并不意味着您可以应用任何 CSS属性,您必须查看可用的内容.
我可以快速找到的最佳参考:http://reference.sitepoint.com/css/vendorspecific
SO编辑,如果有更好的参考,请随时更换此链接