2
我試圖完成與薩斯以下CSS輸出:薩斯@extend兄弟選擇引用父選擇(符號)
.selector1 + .selector1, .selector2 + .selector2 {
margin-top: -80px;
}
的@extend功能應該做的工作:
%sibling-selector {
& + & {
margin-top: -80px;
}
}
.selector1 {
@extend %sibling-selector;
}
.selector2 {
@extend %sibling-selector;
}
但是,似乎擴展函數在僅擴展類定義(%sibling-selector)中對兩個父引用(&)存在問題。 這是輸出:
.selector1 + .selector1, .selector2 + .selector1,
.selector1 + .selector2, .selector2 + .selector2 {
margin-top: -80px;
}
所以@extend功能對於使用@extend定義選擇的每個組合進行同胞選擇。
雖然我期望@extend停留在當前選擇器的「範圍」中,所以&符號將被當前選擇器替換。 這是一個錯誤還是一個特性? :-)
我知道我可以使用一個混合了這份工作,
@mixin sibling-selector {
& + & {
margin-top: -80px;
}
}
.selector1 {
@include sibling-selector;
}
.selector2 {
@include sibling-selector;
}
但這樣會創建重複的CSS定義:
.selector1 + .selector1 {
margin-top: -80px;
}
.selector2 + .selector2 {
margin-top: -80px;
}
有沒有辦法用無禮的權利得到它?
這似乎是對我的錯誤 - 這樣是不是真的佔的邊緣情況。您可能想要在GitHub上提交項目問題。同時:(1)'@ mixin'方法或者(2)只需將期望的輸出編碼爲vanilla CSS並稱之爲一天。 – founddrama
你應該提交一份錯誤報告。 https://github.com/nex3/sass/issues –
在github上添加了一個新問題:https://github.com/nex3/sass/issues/848 – Huyby