2009-08-05 57 views
0

我有一個默認的一個重寫的:hover樣式如下大小,然後它將字體大小更改回8pt。 現在,這似乎是它應該如何工作,但它不會發生在IE7,Firefox,鉻。 (它在IE6中工作)默認答:懸停帶班IE6

更新:在螢火蟲它實際上顯示在a:hover的字體大小已被覆蓋,但我不知道。

任何人有任何想法?因爲樣式被應用 方式

+0

它應該表現出你的螢火什麼重寫它(這將是在樣式部分地方更高) – Alconja 2009-08-05 01:50:26

+0

我想它不是覆蓋它在IE6是痛苦。 – Schotime 2009-08-05 02:16:21

回答

1

我認爲這是因爲a:hovera:link更具體。

如果未指定原始的a:hover字體大小,它將從a:link繼承。但由於有一個a:hover規範,a.myclass:hover寧可採取此值比更「一般」a.myclass:link

我讀的地方想了a僞類是「愛恨交加」的::link:visited:hover:active,一個比以前更具體。如果你定義了a:link的東西,它應該被所有下面的僞類繼承。該值可以被覆蓋,而僞類的特殊性比樣式的定義順序或其他「真實」類連接到鏈接的順序更重要。

它在IE6中的工作方式不同的原因是,IE6做錯了,這不應該是一個驚喜。在解析(可能向後)

差異:

a:hover { font-size: 8pt } 
a.myclass:link { font-size: 14px } 
a.myclass:hover { } 

如何應該是:

:hover,無論.class,是8PT。

如何IE6的理解是:

:hover不在同一個班.myclass:hover。由於沒有爲.myclass:hover指定大小,因此我們繼承相同類中的下一個更高可用僞類,即.myclass:link。這使得.myclass:hover 14px。

估計查找重點:

Others   IE6 

a     a 
a.class   a:link 
a:link   a:hover 
a.class:link  a.class 
a:hover   a.class:link 
a.class:hover  a.class:hover <-- Lookup starts here, goes up. 
0

這就是,如果你將擴展的類,你會得到:

a{ color:red; font-size:10pt;} 
a:hover {font-size:8pt; color:black} 
a.myclass{font-size:6pt;text-decoration:none;} 
a.myclass:hover {color:red} 

現在如果我們擴大這個顯示怎麼回事:

a.myclass{font-size:6pt;text-decoration:none;**color:red**} /* got the color from a - we overrode the font size */ 
a.myclass:hover {color:red;text-decoration:none;font-size:8pt} /* we got the text-decoration from a.myclass - but a:hover overrides myclass so we got the 8pt from there */ 

如果你開始在這樣的星座中開始混合全部效果(邊框/填充/邊距)和僅邊側(邊界 - 右側;邊緣 - 頂部;填充 - 左側),這種效果實際上更加怪異和更復雜。