2013-08-19 60 views
0

有沒有辦法從scss中的擴展選擇器中刪除聲明?Scss:Selector繼承:刪除一個聲明

實施例將是:

#logo { 
    float: left; 
    width: 75px; 
    height: 28px; 
    background: url("/images/logo.png") no-repeat 0 0; 
    a { 
    @extend #logo; 
    background: none; 
    display: block; 
    text-decoration: none; 
    text-indent: -999999em; 
    overflow: hidden; 
    } 
} 

而不是使用

背景:無;

+0

有什麼不對的完全編譯CSS? – cimmanon

+0

沒有什麼大錯,但我想知道是否有一種方法可以在沒有編譯文件顯示'background:none'的情況下完成它。爲#logo定義。 –

回答

2

沒有「撤消」。你必須創建一個單獨的選擇,無論選擇從延長:

%logo-common { 
    float: left; 
    width: 75px; 
    height: 28px; 
} 

#logo { 
    @extend %logo-common; 
    background: url("/images/logo.png") no-repeat 0 0; 
    a { 
    @extend %logo-common; 
    display: block; 
    text-decoration: none; 
    text-indent: -999999em; 
    overflow: hidden; 
    } 
} 

編譯爲:

#logo, #logo a { 
    float: left; 
    width: 75px; 
    height: 28px; 
} 

#logo { 
    background: url("/images/logo.png") no-repeat 0 0; 
} 
#logo a { 
    display: block; 
    text-decoration: none; 
    text-indent: -999999em; 
    overflow: hidden; 
} 
+0

百分比符號似乎會導致問題? –

+1

請參閱[佔位符選擇器](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#placeholders) – cimmanon

+0

非常感謝 - 像魅力一樣的作品! –