CSS具有2大特性:繼承性和層疊性。CSS的繼承性,指的是子元素繼承了父元素的某些樣式屬性,例如在父元素中定義字體顏色(color),子元素會繼承父元素的字體顏色。對於CSS這些,詳細請查看“HTML和CSS進階教程”的“3.2 CSS特性”這一節。
在Sass中,我們可以使用“@extend”來繼承一個樣式塊,從而實現代碼的重用。
舉例1:
.spriteAll { bakckground:url(images/sprite.png) no-repeat; } .sprite-1 { @extend .spriteAll; background-position:0 -30px; } .sprite-2 { @extend .spriteAll; background-position:0 -60px; }
編譯出來的CSS代碼如下:
.spriteAll, .sprite-1, .sprite-2 { bakckground: url(images/sprite.png) no-repeat; } .sprite-1 { background-position: 0 -30px; } .sprite-2 { background-position: 0 -60px; }
分析:
在這個例子中,我們定義了一個“.spriteAll”類用來存放公共樣式,然後在“.sprite-1”和“.sprite-2”中使用@extend來繼承“.spriteAll”類。
舉例:
.btn { padding:6px 10px; border:1px solid silver; font-size:14px; } .btn-primary { @extend .btn; color:white; background-color:red; } .btn-second { @extend .btn; color:orange; background-color:green; }
編譯出來的CSS代碼如下:
.btn, .btn-primary, .btn-second { padding: 6px 10px; border: 1px solid silver; font-size: 14px; } .btn-primary { color: white; background-color: red; } .btn-second { color: orange; background-color: green; }
分析:
在這個例子中,我們定義了一個“.btn”類用來存放公共樣式,然後在“.btn-primary”和“.btn-second”中使用@extend來繼承“.btn”類。
從上面兩個例子我們可以看出,繼承這種方式來實現代碼的重用是非常實用的。它使得代碼更為精簡,並且一目了然,具有更高的可讀性和可維護性。