最近在學習Vue的過程中,遇到了一些sass語法報錯的問題,這讓我深刻地認識到了sass語法的重要性。
必看的報錯信息: syntax error: Invalid CSS after "{": expected selector or at-rule, was "color: $white"
第一個問題就是變量位置所導致的錯誤。
$white: #FFFFFF; .my-class{ color: $white; background-color: lighten($white, 10%); }
上述代碼中,變量$white聲明在了my-class所在的scss外部,導致報錯。我們可以把$white變量聲明在my-class內部,問題就解決了。
.my-class{ $white: #FFFFFF; color: $white; background-color: lighten($white, 10%); }
第二個問題是關于顏色命名空間。
// _variables.scss $colors: ( primary: blue, secondary: grey, accent: pink, ); // _page.scss .my-class{ color: $primary; }
上述代碼中,我們在_variables.scss中聲明了$colors變量,但在_page.scss中卻直接使用了$primary。這樣雖然不會報錯,但如果我們在_variables.scss中再次聲明了$primary,就會出現問題。
正確的寫法應該是使用顏色的命名空間:
.my-class{ color: map-get($colors, primary); }
最后,我們需要注意的是,在scss中使用vue組件的時候,需要使用scope屬性,防止樣式污染。
Hello World
上述代碼中,我們在組件內使用了my-class作為p標簽的class名,并在樣式中寫了顏色。但由于我們在style標簽里加上了scoped屬性,因此這個樣式只會應用于該組件內的元素,防止了全局樣式的污染。
總的來說,sass語法的能力是Vue開發過程中不可或缺的一部分,我們需要時刻關注變量的位置,特別是在嵌套的代碼中,注意顏色的命名空間,避免全局污染,同時使用scoped屬性防止樣式污染,避免出現常見的語法報錯問題。
上一篇vue route是什么
下一篇vue row-key