2009-12-21 124 views
2

我的問題很直接:爲什麼HTML-CSS中的(幾乎)所有屬性都有「繼承」的值......儘管所有的瀏覽器都支持所有的繼承(根據我的觀察,是的,所有)屬性..

當我問及谷歌這件事。我能想出的一份聲明稱HTML-CSS:對於HTML設計中的樣式屬性是否真的有必要使用「inherit」值?

「即使 在CSS自動繼承某些特性, 有可能是在您 要增長情況 的繼承屬性的權重。指定一個值對於應用於元素的任何CSS屬性 將繼承的繼承012uex 將導致 元素獲得其父級計算的 值。通過 指定在作者樣式表 一個屬性應該繼承其 值,可以增加它的重量。」

現在,這是又更加混亂..這是什麼‘增加重量’

是它像..儘量保持安全。(以不信任繼承的瀏覽器的內置能力)或有更多的可以理解的代碼?     我不澄清..

也有人提到,

「Internet Explorer 7和更早 版本不支持的價值 繼承比 方向和知名度之外的任何屬性。」

如果這是真的..然後它驅動的原因(??)使用「繼承」的價值還更弱..

+1

是的,看起來像又一個黑客添加到規範,以保持即功能 – Pierreten 2009-12-21 05:50:14

回答

3

參考W3C's specification爲「繼承」值。

摘錄:

的「繼承」值可以用於 加強繼承的值,並且它可以 也對 通常不繼承的屬性來使用。

對我來說,這是一個更好的措辭,而不是「增加繼承屬性的權重」。

對於IE7繼承問題,檢查本SO張貼在IE7 CSS inherit problem

UPDATE:
使用K Prime的示例代碼,這裏的測試中,我做了IE7 VS IE8/FF3。5

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<style type="text/css"> 
p { color: #666; } 
p a { color: blue; text-decoration: underline; } 
p a.inactive { color: inherit; text-decoration: none; } 
</style> 
</head> 
<body> 
<a href="#">should be default</a> 
<p> 
<a href="#" class="inactive">should be grey</a> 
<a href="#">should be blue</a> 
</p> 
</body> 
</html> 

IE7輸出:
IE7 http://i49.tinypic.com/juc0w4.jpg

IE8/FF3.5輸出:
IE8/FF3.5 http://i45.tinypic.com/118g003.jpg

這麼好,IE7失敗「繼承'爲這個測試。

+0

因此,我們不能幫助IE的情況下,像什麼「K總理」(在其他答案)提到..是不是? – 2009-12-21 05:59:21

+0

我沒有在IE上自己試過。 「K Prime」試圖說明「繼承」的預期用法。我的預感是,它可能不適用於IE,對不起隊友。 – 2009-12-21 06:01:36

+0

它確定..沒有真正的問題..我只是想澄清它(我有信心嘗試一些變通方法)..它一直是瀏覽器的問題..他們不跟進W3C建議及時..無論如何.. thanx的互動:) – 2009-12-21 06:08:44

2

這用於覆蓋以前設置的自定義樣式,或撤消自定義。爲了澄清:

p { color: #666; } 
p a { color: blue; text-decoration: underline; } 

p a.inactive { color: inherit; text-decoration: none; } 

一個段落裏面的所有鏈接(a)將是藍色的,但是這將設置那些inactive從父(該p),這將使他們在這種情況下灰色繼承。

+0

如何IE瀏覽器,這個代碼也在IE中工作? – 2009-12-21 05:56:37

+1

不幸的是,從經驗來看,沒有 - 至少不是IE6和IE7的某些屬性 – 2009-12-21 06:25:34

相關問題