在vue開發中,需要使用scoped屬性避免樣式的全局干擾,但是這樣在父組件中是無法被修改的,不僅如此如果項目中用了UI框架比如element Ui,這個時候在本組件也無法修改樣式,因為權重問題。但是想要修改還是有方法的:
1. 在不去掉scoped的情況下,在全局樣式中覆蓋,這種解法,有弊端,可能會污染全局樣式。
2.使用深度作用選擇器,可以通過vue-loader提供的新寫法 vue-loader 寫法如下(先安裝,在使用):
<style scoped
>
.a >>> .b { /* ... */ }
</style>
某些預處理器(如Sass)可能無法>>>
正確解析。在這些情況下,您可以使用/deep/
組合器 - 它是別名,>>>
並且完全相同。
<style scoped lang="scss">
.form {
background-color: #fff;
/deep/ .list{
font-size: 18px;
}
}
</style>
sass注意要用 /deep/ ,而無法使用 >>> 這個符號。
通過 v-html 創建的 DOM 內容不受作用域內的樣式影響,但是你仍然可以通過深度作用選擇器來為他們設置樣式 。