deep 深度選擇器與修改 element-ui 樣式

Scoped Css

當(dāng) <style> 標(biāo)簽有 scoped 屬性時,它的 CSS 只作用于當(dāng)前組件中的元素。這類似于 Shadow DOM 中的樣式封裝。它通過使用 PostCSS 來實現(xiàn)以下轉(zhuǎn)換:

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

<template>
  <div class="example">hi</div>
</template>

轉(zhuǎn)換結(jié)果:

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

<template>
  <div class="example" data-v-f3f3eg9>hi</div>
</template>

由轉(zhuǎn)換結(jié)果可見,每一個類名都加上了 hash 值,使樣式只作用于當(dāng)前組件。

修改 element-ui 默認樣式

混用本地和全局樣式

<style>
/* 全局樣式 */
</style>

<style scoped>
/* 本地樣式 */
</style>

抽取到全局 css 文件

在全局 css 文件中重寫覆蓋的樣式,為了不污染全局樣式,可以加個單獨的類名

深度作用選擇器

這是 vue-loader 提供的一種寫法,如果你希望 scoped 樣式中的一個選擇器能夠作用得“更深”,例如影響子組件,你可以使用 >>> 操作符:

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

上述代碼將會編譯成:

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

有些像 Sass 之類的預(yù)處理器無法正確解析 >>>。這種情況下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——兩者都是 >>> 的別名,同樣可以正常工作。

<style scoped lang="scss">
  .form {
    background-color: #fff;
    /deep/ .list{
      font-size: 18px;
    }
  }
</style>

參考資料

https://vue-loader.vuejs.org/zh/guide/scoped-css.html#%E6%B7%B7%E7%94%A8%E6%9C%AC%E5%9C%B0%E5%92%8C%E5%85%A8%E5%B1%80%E6%A0%B7%E5%BC%8F

?著作權(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)簽(空格分隔): 家園建造 種植技術(shù) 原文鏈接(自帶目錄導(dǎo)航):家園建造與種植資料分類...
    中道心閱讀 1,528評論 0 3
  • (開始) (標(biāo)題)iApc(/標(biāo)題)(鏈接)https://duming666.wodemo.net/down/2...
    獨名閱讀 1,910評論 1 3
  • ## 2015.06.05 - [開源利弊淺談 - 張超耀](移動組周技術(shù)分享總結(jié)#開源利弊淺談---張超耀) -...
    XcodeYang閱讀 1,545評論 1 3
  • Vue Scoped CSS覆蓋組件的樣式 如果在 style 標(biāo)簽設(shè)置 scoped 屬性,則它的樣式只應(yīng)用到當(dāng)...
    隔壁老王z閱讀 235評論 0 0
  • Vue適用的深度選擇器 在 Vue 的開發(fā)中,我們經(jīng)常會用到外部組件庫,例如 element,當(dāng)使用 elemen...
    _孫小胖閱讀 1,378評論 0 2

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