国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

csshover.htc在IE7下使用:active偽類無效的原因

2024-07-11 08:23:02
字體:
來源:轉載
供稿:網友

csshover

相信做前端開發都知道,IE6、IE7都不支持:active偽類,IE6更甚,連:hover偽類都不支持。為了解決這個問題,一般都會引入一個csshover.htc文件來解決。

目前該文件版本為3.11,
下載地址:http://peterned.home.xs4all.nl/csshover.html
如果你發現自己使用的不是最新的版本,趕緊更新吧。

Bug

在使用過程中,發現IE7的:active居然不起作用。做了一番測試,最后發現,原來是選擇符權重的問題。

失效的條件為:樣式選擇符都使用類選擇符。
示例代碼如下(需要IE7瀏覽):

<!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>

此時鼠標按下時是不會有變化的。


解決方案

A.不使用類選擇器。可以使用元素選擇符,或id選擇符。
B.增加:active偽類的權重。

對于A方案,可以修改選擇符為:
-----------------------------
div{}
div:hover{}
div:active{}
-----------------------------

或者:

-----------------------------
#d{}
#d:hover{}
#d:active{}

<div id="d"></div>
-----------------------------

對于B方案,可以按權重增加方式使用選擇符:

-----------------------------
div{}
.d:hover{}
#d:active{}

<div id="d" class="d"></div>
-----------------------------

或者增加選擇符:

-----------------------------
.d{}
.d:hover{}
.b .d:active{}

<body class="b">
  <div id="d" class="d"></div>
</body>
-----------------------------

原因

導致該問題的原因,可能是因為給:hover和:active使用了同樣的類選擇符。此時需要給:active多增加一個類選擇符或ID選擇符,元素選擇符的權重還不夠。

htc文件是通過給元素添加類來實現效果變化,鼠標按下時,會給元素添加兩個類:onhover和onactive,至于為何onactive的樣式沒生效,目前還不知道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武穴市| 泉州市| 开封市| 伊宁县| 宁德市| 原平市| 久治县| 阜南县| 富蕴县| 盐边县| 开阳县| 梓潼县| 普兰店市| 杭锦后旗| 桦川县| 三都| 郁南县| 斗六市| 龙陵县| 千阳县| 恩施市| 丁青县| 大荔县| 叙永县| 灵台县| 红河县| 新昌县| 朝阳县| 茌平县| 梨树县| 太白县| 米脂县| 富裕县| 祁连县| 平山县| 广灵县| 兴安县| 崇义县| 怀远县| 苍溪县| 聂拉木县|