Vue2 Vue3 Scoped 樣式穿透問(wèn)題
概念
主要是用于修改很多 Vue 常用的組件庫(kù)(Element, Vant, AntDesigin),雖然配好了樣式但是還是需要更改其他的樣式, 因?yàn)樘砑恿?scoped 實(shí)現(xiàn) css 模塊化
就需要用到 樣式穿透 ,更改組件的樣式
scoped 的原理
Vue 中的 scoped 通過(guò)在 DOM結(jié)構(gòu)以及 css 樣式上加唯一不重復(fù)的標(biāo)記: data-v-hash 的方式,以保證唯一(而這個(gè)工作是由過(guò) PostCSS 轉(zhuǎn)譯實(shí)現(xiàn)的),達(dá)到 樣式私有化模塊化的目的。
簡(jiǎn)單示例代碼如下
<template> <div> <el-input placeholder="Please input" class="ipt" /> </div> </template> <script setup lang="ts"> </script> <style scoped> .ipt { width: 300px; margin: 100px 400px; } </style>
總結(jié)一下 scoped 三條渲染規(guī)則
1.給 HTML 的 DOM 節(jié)點(diǎn)加一個(gè)不重復(fù) data 屬性(形如:data-v-123)來(lái)表示他的唯一性
2. 在每個(gè) CSS 選擇器的末尾(編譯后的生成的 CSS 語(yǔ)句)加一個(gè)當(dāng)前組件的 data 屬性選擇器(如 [data-v-123])來(lái)私有化樣式
3. 如果組件內(nèi)部包含有其他組件,只會(huì)給其他組件的最外層標(biāo)簽加上當(dāng)前組件的 data 屬性
注意:
<template> <div> <el-input placeholder="Please input" class="ipt" /> </div> </template> <script setup lang="ts"> </script> <style scoped lang="less"> .ipt { width: 300px; margin: 100px 400px; .el-input__inner { background-color: red; } } </style>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用vue-router實(shí)現(xiàn)二級(jí)菜單內(nèi)容轉(zhuǎn)換
這篇文章主要介紹了如何利用vue-router實(shí)現(xiàn)二級(jí)菜單內(nèi)容轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Vue實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求攔截
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求攔截,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10Element的el-tree控件后臺(tái)數(shù)據(jù)結(jié)構(gòu)的生成以及方法的抽取
這篇文章主要介紹了Element的el-tree控件后臺(tái)數(shù)據(jù)結(jié)構(gòu)的生成以及方法的抽取,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03vue服務(wù)端渲染操作簡(jiǎn)單入門實(shí)例分析
這篇文章主要介紹了vue服務(wù)端渲染操作,結(jié)合簡(jiǎn)單實(shí)例形式分析了vue.js服務(wù)端渲染操作的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-08-08vue源碼學(xué)習(xí)之Object.defineProperty 對(duì)數(shù)組監(jiān)聽(tīng)
這篇文章主要介紹了vue源碼學(xué)習(xí)之Object.defineProperty 對(duì)數(shù)組監(jiān)聽(tīng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05一文了解vue-router之hash模式和history模式
這篇文章主要介紹了一文了解vue-router之hash模式和history模式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Vue ECharts餅圖實(shí)現(xiàn)方法詳解
這篇文章主要介紹了在vue.js中,使用echarts組件,創(chuàng)建一個(gè)餅圖,并且獲取餅圖的數(shù)據(jù)和屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12