2017-08-03 56 views
1

如果,如果有這樣的事:在SCSS選擇器中包含可選的僞代碼類。

input, select { 
    &:focus { 
    border: solid 1px blue; 
    } 
} 

.has-error { 
    input, select { 
    border: solid 1px red; 
    } 
} 

然後,.has-error內輸入仍將風格的藍色,因爲input:focus更爲具體。

有沒有一種優雅的方式來覆蓋這個? 我已經得到了最好的是:

input, select { 
    &:focus { 
    border: solid 1px blue; 
    } 
} 

.has-error { 
    input, select, input:focus, select:focus { 
    border: solid 1px red; 
    } 
} 

回答

2

你需要更多的嵌套:

.has-error { 
    input, select { 
    &, &:focus { 
     border: solid 1px red; 
    } 
    } 
} 
+0

正要現在這個職位嘍! :) – dwjohnston