IE6下CSS多类选择符优先级不起作用的bug分析及解决方法

【字号: 日期:2024-06-16浏览:5作者:雯心
IE6,这个前端开发的梦魇总是在你不经意的时候给你捅一刀。这次碰到的问题是CSS多类选择符的问题。IE6不支持,我们来看一段这样简单的代码: 复制代码代码如下: !DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' html xmlns='http://www.w3.org/1999/xhtml' head meta http-equiv='Content-Type' content='text/html; charset=utf-8' / titleIE6多类选择符优先级不起作用的bug/title style type='text/css' div{display:block;width:400px;height:200px;} #id1.c1{background:#ccc;} .c2.c3{border:1px solid red; /* 边框红色 */} .c3{border:1px dashed #00F; /* 边框蓝色 */} /style /head body div class='c1'a/div div class='c2 c3'b/div !--IE6下,边框为蓝色,其他浏览器都为红色-- /body /html 形如 #id1.c1 的选择符,支持性很好,IE6及以上,Firefox,opera,safari等浏览器都支持。形如 .c2.c3 的选择符,在IE6下不支持,后一个类名会覆盖前一个类名,即直接识别为 .c3 ,也就是说,IE6下这种类组合的优先级不如单个类。 所以开发中用多类来组合实现css效果的时候,注意IE6的这个问题。最好的方法就是,不要用这种类组合的形式。实例二:!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'html xmlns='http://www.w3.org/1999/xhtml'headmeta http-equiv='Content-Type' content='text/html; charset=utf-8' /title选择符测试/titlestyle type='text/css' div{display:block;width:400px;height:200px;} #first.son{background:#ccc;} .second.son{border:1px solid red;}/style/headbody div a /div div b /div/body/html ffcod = delpost.runcode3 .value; ffcod = ffcod.replace(//g,’’); delpost.runcode3 .value = ffcod; 提示:您可以先修改部分代码再运行形如#first.son的选择符,支持性很好,ie6及以上,ff,opera,safari等浏览器都支持。 形如.second.son的选择符,在ie6下不支持,后一个类名会覆盖前一个类名,即直接识别为.son 其实可以利用第二条情况,作为一个针对ie6的hack来使用: .xxx.son{} 只要.xxx部分是一个不存在的类名。就可以屏蔽ie6之外的浏览器。只对ie6下的.son有效。 这个hack的效果同 selector{ _property:value; } 大体一致。
相关文章: