我看到:優先
- CSS 2, precedence of stylesheets imported using link element
- In which order do CSS stylesheets override?
- stylesheet - Can one CSS file take priority over another CSS file?
他們都好像說的是,對於相同的選擇發生多次,最後一個勝。但是,這不是我所遇到的。因此,考慮到 「Aqua.css」 有:
body {color:aqua;}
和 「Red.css」 有:
body {color:red;}
然後使用以下:
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>
最後一個,黃色,正如其他答案所說的那樣。如果我改變,但是:
<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
然後使用Aqua,而不是最後一個,紅色。見Precedence of CSS rules Sample 2。體色是水族但Aqua.css是Red.css之前。所有我找到的答案說,車身顏色將是紅色。
每當我有多個鏈接到CSS樣式表和它們之間唯一的區別是什麼顏色(元素或類或其他),則使用第一樣式表,而不是最後,但似乎不是我讀過的每一樣東西都應該發生。我曾嘗試Edge,Chrome和IE;我注意到他們之間沒有相關的區別。
所以,我有以下兩個問題:
- 我是正確,我看到的行爲(第一個鏈接標籤被用來代替過去的)是從其他的答案有什麼不同?
- 如果是這樣的話,爲什麼?
我很抱歉如果我應該發佈了其他線程之一的答案,但我認爲創建一個新問題更爲清晰。
的原因,我問的是,我想創建一個動態的系統樣式這麼理解的優先級是更重要的,它是不那麼有效,只是試一下,看比在正常情況下,是什麼在起作用。我將試圖解釋規範,但到已經在其他的答案的程度,我想了解什麼已經在其他線程這裏提供。
我相信答案是,不能保證哪個樣式表將首先被加載,並且以什麼順序設置主體屬性。這就是爲什麼你不應該這樣做。 – Rob
@Rob,「不能保證哪個樣式表會先加載」,加載順序與它無關。 *只要所有樣式表都加載了*,DOM排序就會嚴格定義將應用哪些樣式。沒有涉及模糊邏輯或猜測。 – zzzzBov
@zzzzBov我不太確定,我想回憶一下我前段時間閱讀過的關於不能保證首先應用什麼的文章。如果您有兩個外部樣式表,其中包含與此問題中相同元素的相同CSS屬性,並且第二個樣式表在第一個樣式表應用之前完成下載?如果我可以肯定地回憶,我會做出這個答案,但我現在沒有時間去嘗試找到它。我所想的可能不適用於此,但這是可以研究的。 – Rob