IE6对多个CSS样式的解析

分类:Html_Css| 发布:camnprbubuol| 查看: | 发表时间:2012/2/2

问题描述

如果样式写成这样<p class="class_1 class_2">,那么在IE6和FF(IE6+同FF)下会显示为不同的效果。

 

测试代码

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
    <title>IE6对多个CSS样式的解析</title>
    <style type="text/css">
        body { font-size:12px; }
        .West { color:Green; }
        .West.Color { color: Red; }
    </style>
</head>
<body>
    <p class="West">大师兄,师傅被妖怪抓走了。</p>
    <p class="West Color">二师兄,师傅被妖怪抓走了。</p>
    <p class="East Color">大师兄,二师兄被妖怪抓走了。</p>
    <p class="East">大师兄,师傅和二师兄被妖怪抓走了。</p>
    <p class="Color">师傅放心吧,大师兄会来救我们的。</p>
</body>
</html>

 

解析效果

 

测试代码

增加了新的样式

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>
    <title>IE6对多个CSS样式的解析</title>
    <style type="text/css">
        body { font-size:12px; }
        .West { color:Green; }
        .West.Color { color: Red; }
        .East.Color { color: Blue; }
    </style>
</head>
<body>
    <p class="West">大师兄,师傅被妖怪抓走了。</p>
    <p class="West Color">二师兄,师傅被妖怪抓走了。</p>
    <p class="East Color">大师兄,二师兄被妖怪抓走了。</p>
    <p class="East">大师兄,师傅和二师兄被妖怪抓走了。</p>
    <p class="Color">师傅放心吧,大师兄会来救我们的。</p>
</body>
</html>
<br>

 

解析效果

 

如果样式改成这样

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
    <title>IE6对多个CSS样式的解析</title>
    <style type="text/css">
        body { font-size:12px; }
        .West { color:Green; }
        p.West.Color { color: Red; }
        .East.Color { color: Blue; }
    </style>
</head>
<body>
    <p class="West">大师兄,师傅被妖怪抓走了。</p>
    <p class="West Color">二师兄,师傅被妖怪抓走了。</p>
    <p class="East Color">大师兄,二师兄被妖怪抓走了。</p>
    <p class="East">大师兄,师傅和二师兄被妖怪抓走了。</p>
    <p class="Color">师傅放心吧,大师兄会来救我们的。</p>
</body>
</html>

解析结果,原来在IE6中显示为蓝色的都显示为红色。而FF保持不变。

 

 

嗯 是IE6不支持这个选择器
我有找到一个用来使IE6支持该选择器的js
demo参见这里http://ie7-js.googlecode.com/svn/test/multiple-classes.html
该js lib见这里 http://code.google.com/p/ie7-js/
上面代码修改后如下
不过仍然和我的需求有出入,因为我给div增加多个class的操作也是用js来做的,所以这里就有问题了,解决思路可能是在添加多个class后,再调用一下这个js lib中跟multiple classes有关的函数.不过暂时没找到……

 

 

结论

在IE6中,连续拼写的两个样式,.class_1.class_2,识别为后一个.class_2。后定义的优先。

在FF中,必须匹配完整的样式,少一个都不识别。

如果加上了p限定,则优先级高于不加p的样式,参考CSS优先级

来源:http://www.cnblogs.com/0417/archive/2010/07/15/1778033.html

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/523.html