deep selector深度作用選擇器

前言:Vue的組件中,可以在<style>標(biāo)簽上添加scoped屬性,實現(xiàn)組件樣式的私有化,不會對全局造成樣式污染。

scoped實現(xiàn)樣式私有化原理

<style scoped>
.text {
  color: red;
}
</style>

上面代碼會通過PostCSS轉(zhuǎn)譯成:

<style >
.text[data-v-f3f3eg9] {
  color: red;
}
</style>

通過給一個組件中的所有dom節(jié)點添加了一個唯一的data屬性,并且給css選擇器添加當(dāng)前組件對應(yīng)的data屬性選擇器來私有化樣式。

深度作用選擇器

如果你希望 scoped樣式中的一個選擇器能夠作用得更深,影響到子組件,你可以使用 深度作用選擇器>>>。

<style scoped>
.a >>> .b { /* ... */ }
</style>

上述代碼會轉(zhuǎn)移成:

.a[data-v-f3f3eg9] .b { /* ... */ }

從而實現(xiàn)私有作用域內(nèi).b的樣式設(shè)置。

/deep/的使用

有些像 less、sass之類的預(yù)處理器無法正確解析 >>>。這種情況下你可以使用 /deep/操作符設(shè)置子組件樣式。

<style lang="less" scoped>
.text-box{
  /deep/ input {
     /* ... */ 
  }
}
</style>

作用

當(dāng)使用到第三方樣式庫,如iview、element-uimint-uivux-ui等等。想要在某個組件內(nèi)修改第三方組件樣式,又不影響全局的第三方組件樣式,可以通過上述方法,在scoped私有作用域內(nèi)使用深度作用選擇器。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 私有作用域 在 標(biāo)簽上添加scoped屬性,可以使樣式只在當(dāng)前組件生效,樣式私有化,避免影響其他的組件,造成全局污...
    lesdom閱讀 2,295評論 2 1
  • 本文發(fā)布在我的博客vue中慎用style的scoped屬性許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹4.0國際 ...
    2ue閱讀 9,271評論 2 7
  • title: 風(fēng)格指南type: style-guide 這里是官方的 Vue 特有代碼的風(fēng)格指南。如果在工程中使...
    ChenyuMa閱讀 1,235評論 1 1
  • 這里是官方的 Vue 特有代碼的風(fēng)格指南。如果在工程中使用 Vue,為了回避錯誤、小糾結(jié)和反模式,該指南是份不錯的...
    youins閱讀 6,003評論 0 5
  • 8月26日,是小朋友注冊,報到的日子。從今天起,你就是一名小學(xué)生了,從丫丫走路到幼兒園,小小的你被老師牽著。一直到...
    跳跳karl閱讀 207評論 0 1

友情鏈接更多精彩內(nèi)容