最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

csshover.htc在IE7下使用:active偽類無效解決方法

  發(fā)布時(shí)間:2012-12-24 09:15:06   作者:佚名   我要評論
相信做前端開發(fā)都知道,IE6、IE7都不支持:active偽類,IE6更甚,連:hover偽類都不支持。為了解決這個(gè)問題,一般都會引入一個(gè)csshover.htc文件來解決,本文將介紹解決此問題的實(shí)現(xiàn)過程,需要了解的朋友可以參考下
csshover
相信做前端開發(fā)都知道,IE6、IE7都不支持:active偽類,IE6更甚,連:hover偽類都不支持。為了解決這個(gè)問題,一般都會引入一個(gè)csshover.htc文件來解決。
目前該文件版本為3.11,
如果你發(fā)現(xiàn)自己使用的不是最新的版本,趕緊更新吧。
Bug
在使用過程中,發(fā)現(xiàn)IE7的:active居然不起作用。做了一番測試,最后發(fā)現(xiàn),原來是選擇符權(quán)重的問題。
失效的條件為:樣式選擇符都使用類選擇符。
示例代碼如下(需要IE7瀏覽):

復(fù)制代碼
代碼如下:

<!doctype html>
<head>
<style>
body { behavior:url("csshover3.htc"); }
.d{
width:200px;
height:200px;
background:yellow;
}
.d:hover{
background:green;
}
.d:active{
background:red;
}
</style>
</head>
<body>
<div class="d"></div>
</body>

此時(shí)鼠標(biāo)按下時(shí)是不會有變化的。
解決方案
A.不使用類選擇器??梢允褂迷剡x擇符,或id選擇符。
B.增加:active偽類的權(quán)重。
對于A方案,可以修改選擇符為:
-----------------------------

復(fù)制代碼
代碼如下:

div{}
div:hover{}
div:active{}

-----------------------------
或者:
-----------------------------

復(fù)制代碼
代碼如下:

#d{}
#d:hover{}
#d:active{}
<div id="d"></div>

-----------------------------
對于B方案,可以按權(quán)重增加方式使用選擇符:
-----------------------------

復(fù)制代碼
代碼如下:

div{}
.d:hover{}
#d:active{}
<div id="d" class="d"></div>

-----------------------------
或者增加選擇符:
-----------------------------

復(fù)制代碼
代碼如下:

.d{}
.d:hover{}
.b .d:active{}
<body class="b">
<div id="d" class="d"></div>
</body>

-----------------------------
原因
導(dǎo)致該問題的原因,可能是因?yàn)榻o:hover和:active使用了同樣的類選擇符。此時(shí)需要給:active多增加一個(gè)類選擇符或ID選擇符,元素選擇符的權(quán)重還不夠。
htc文件是通過給元素添加類來實(shí)現(xiàn)效果變化,鼠標(biāo)按下時(shí),會給元素添加兩個(gè)類:onhover和onactive,至于為何onactive的樣式?jīng)]生效,目前還不知道。

相關(guān)文章

最新評論

宜宾市| 县级市| 泽普县| 镇安县| 横峰县| 徐水县| 太谷县| 镇安县| 大荔县| 潢川县| 离岛区| 昭通市| 灵寿县| 河津市| 新宁县| 黎平县| 甘孜| 霍林郭勒市| 苗栗市| 屯留县| 黄浦区| 方山县| 西昌市| 南陵县| 贵港市| 哈尔滨市| 句容市| 沙坪坝区| 垫江县| 前郭尔| 英山县| 平安县| 晋江市| 万山特区| 曲麻莱县| 昌都县| 祁阳县| 宜黄县| 宁南县| 宾川县| 竹山县|