樣式的繼承
樣式的繼承:為一個元素設置的樣式,同時也會應用到它的后代元素上去。
繼承是發生在祖先元素和后代元素上面
繼承的設計是為了方便開發,利用繼承可以將一些通用的樣式統一設置到共同的祖先元素上面,這樣只需要設置一次就可以讓所有的元素都有該樣式。
注意: 并不是所有的樣式都會被繼承,常見的有背景、布局相關的樣式一般都不 會被繼承。(例如 transparent、background、position相關內容)
在為父元素設置背景顏色而其中子元素也會顯示出相同的背景顏色,這并不意味著 background-color 樣式可以被繼承,而是因為 background-color 樣式的默認值為 transparent 透明的,所以子元素才會顯現出父元素的背景顏色。
<div>我是div <span> 我是子元素span </span></div>
div{ background-color:skyblue; }
選擇器的權重
樣式的沖突: 當我們通過不同的選擇器,選中相同的元素并且對相同的樣式設置不同的值,此時就發生了樣式的沖突。
選擇器的優先級 | |
內聯樣式 | 1,0,0,0 |
id選擇器 | 0,1,0,0 |
類和偽類選擇器 | 0,0,1,0 |
元素選擇器 | 0,0,0,1 |
通配選擇器 | 0,0,0,0(任何選擇器都可以覆蓋其樣式) |
繼承的樣式 | 沒有優先級 |
!important | 最高的優先級,甚至超過內聯樣式 |
div{ background-color:blue !important; //(這樣會把樣式的有限級設置到最高)}
注意:
1、優先級一定要慎用。
2、同時存在 通配選擇器 和 繼承的樣式 那么優先顯示通配選擇器所設置樣式。
3、如果優先級計算后相等,則優先使用靠下的樣式,下面的樣式會把上面樣式覆蓋
4、比較優先級的時候,需要將所有的選擇器的優先級相加計算,最后優先級越高,越優先顯示(分組選擇器是優先計算的)
5、選擇器的累加不會超過其最大的數量級,類選擇器所累計的優先級越高,也不會超過id選擇器(不會越級)