6-2. 繼承的高級用法

2018-08-11 21:06 更新

任何css規(guī)則都可以繼承其他規(guī)則,幾乎任何css規(guī)則也都可以被繼承。大多數(shù)情況你可能只想對類使用繼承,但是有些場合你可能想做得更多。最常用的一種高級用法是繼承一個html元素的樣式。盡管默認的瀏覽器樣式不會被繼承,因為它們不屬于樣式表中的樣式,但是你對html元素添加的所有樣式都會被繼承。

接下來的這段代碼定義了一個名為disabled的類,樣式修飾使它看上去像一個灰掉的超鏈接。通過繼承a這一超鏈接元素來實現(xiàn):

.disabled {
  color: gray;
  @extend a;
}

假如一條樣式規(guī)則繼承了一個復雜的選擇器,那么它只會繼承這個復雜選擇器命中的元素所應用的樣式。舉例來說, 如果.seriousError@extend.important.error , 那么.important.errorh1.important.error 的樣式都會被.seriousError繼承, 但是.important或者.error下的樣式則不會被繼承。這種情況下你很可能希望.seriousError能夠分別繼承.important或者.error下的樣式。

如果一個選擇器序列(#main .seriousError)@extend另一個選擇器(.error),那么只有完全命中#main .seriousError這個選擇器的元素才會繼承.error的樣式,就像單個類名繼承那樣。擁有class="seriousError".main元素之外的元素不會受到影響。

#main .error這種選擇器序列是不能被繼承的。這是因為從#main .error中繼承的樣式一般情況下會跟直接從.error中繼承的樣式基本一致,細微的區(qū)別往往使人迷惑。

現(xiàn)在你已經(jīng)了解了通過繼承能夠做些什么事情,接下來我們將學習繼承的工作細節(jié),在生成對應css的時候,sass具體干了些什么事情。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號