大家都知道css是根據樣式表名字來給名字匹配的html元素添加對應的效果的,但是有時候一個html元素卻用了幾個css樣式表,那么這幾個樣式表之間是怎么樣的關系呢?最終的頁面效果會是什么樣的呢?
下面我們來說一下css的三大特性,徹底搞懂多個css樣式表之間是如何相愛相殺的。
我們可以看到我們給了一個div容器兩個不同的樣式表,但是最終在瀏覽器展現的效果是name1這個樣式生效了css去掉a標簽背景顏色,而name2仿佛失蹤了一樣,這是為什么呢?
CSS( Style )又稱為層疊樣式表css去掉a標簽背景顏色,他有一個層疊性的性質,這個性質就是用來解決如上述情況下引起的樣式沖突問題。
當多個樣式作用于同一個(同一類)標簽時,樣式發生了沖突,總是執行后邊的代碼(后邊代碼層疊前邊的代碼),和標簽調用選擇器的順序沒有關系。所以我們可以看到在style中name2在name1之前生成,但是即便name1書寫在name2的前面它也不會被覆蓋,因為決定性因素是css樣式表中的書寫順序。這是因為瀏覽器渲染網頁,會先下載文檔內容,加載頭部的樣式資源,然后按照從上而下,自外而內的順序渲染DOM內容,所以寫在前面的樣式會被覆蓋掉。
二. 繼承性
CSS繼承性是指被包在內部的標簽將擁有外部標簽的樣式性質。他的前提是元素之間存在包含關系。
并不是所有有包含關系的元素都可以繼承樣式,字體,文本等屬性可以在css中實現繼承,例如文字顏色、大小、字體、粗細等等。而邊距,背景等屬性就不被繼承。
特殊情況:
h系列不能繼承文字大小。
a標簽不能繼承文字顏色。
下面來看看效果圖:
三.優先級
定義css樣式時,經常出現兩個或更多規則應用在同一元素上,這時就會出現優先級的問題。
下面幾種不同的情況:
第一種比較:都只有一個選擇器的時候,可以看出,id選擇器選擇下的p元素樣式生效了。
第二種比較: 有多個選擇器的時候,明顯的可以看到,多選擇器選中的樣式生效了,單個選擇器打不過呀。
第三種比較:多選擇器選中之間的比較,這就可以看出id選擇器+id選擇器最厲害了。