您可以使用@extend,但不能使用繼承的選擇器。
你可以使用一個@擴展,只有選擇像這樣:
#page {
%common_p {
margin: 10px 20px;
color: white;
padding: 10px;
}
p {
@extend %common_p;
}
#form {
p {
@extend %common_p;
color: gray;
}
}
}
其輸出作爲
#page p, #page #form p {
margin: 10px 20px;
color: white;
padding: 10px; }
#page #form p {
color: gray; }
我希望這實現你渴望什麼!
我不確定這是否更好,但由於級聯的原因,#form中的任何p標籤也已經獲得#頁面的p標籤。例如。他們會得到邊緣和填充和顏色,但顏色會被覆蓋。
即使沒有發生級聯(例如,如果#form存在於#page之外),這也會迫使其發生。如果是這樣的話,那麼這種技術會更好,因爲SASS會將風格結合起來使輸出更少重複。
您可以在http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#placeholders
中瞭解@extend在做什麼