Vue開發中覆蓋element-ui原有組件樣式
項目在開發Vue的時候用的UI庫是element-ui,在某個需求我需要自己嘗試去修改element-ui中內置組件的樣式。
為了嘗試覆蓋,我做了以下的操作:
1、使用自定義的類名,最終在實現效果的時候還是不可以,打開F12檢查模式,發現還是類名沒有附加上去,但是沒實現,不甘心失敗的我繼續看看能不能怎么解決
2、使用組件自身攜帶的類名,例如el-button這樣直接覆蓋,發現還是不行,推測是因為內置屬性使用了父元素等,也就是他的權重計算比我寫的高
3、使用深度作用選擇器 >>> 或者 /deep/
注:>>>和 /deep/兩個是一樣的功能
使用方法:在自定義類名中使用,如圖示
但是我在使用>>>這個的時候是沒辦法生效的,初步推測是因為CSS預處理器的原因,因為之前使用的LESS預處理器是沒有這問題,我這里是使用的是SCSS預處理器。
為了防止不生效,我在每一個樣式后面都加了!important,這樣下來,我需要的樣式就正常顯示了,下面是沒修改前和修改后的樣式對比:
題外話:scoped是什么標簽屬性?為什么Vue-CLI在創建Vue文件的時候會在每一個style樣式里面寫上scoped屬性。