国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Vue scoped及deep使用方法解析

瀏覽:97日期:2022-12-19 18:22:59

眾所周知,在組件中給style 標簽添加屬性 scoped 屬性可以避免組件內樣式對外界造成污染,scoped使得組件內的樣式變成局域樣式,只作用于當前組件。

原理如下-------

在編譯組件的時候,如果當前組件內style標簽上有scoped屬性,那么會在當前所有標簽上添加一個【data-v-hash】屬性,而當前樣式表內的所有末尾選擇器后面也會加上該屬性,那么就使得當前組件內的樣式只會作用于當前組件內的元素。值得注意的是,當父組件,子組件同時使用scoped屬性時,子組件最外層的標簽既會被加上當前組件的hash值,又會加上父級組件的hash值,像這樣

//子組件最外層標簽<div data-v-b45036b2 data-v-384b136e ></div>

但是有個問題------

在我們用scoped的時候回發現一個問題,就是我們在當前組件內使用的scoped,但是我想在當前組件內改變子組件的樣式(非最外層標簽),的時候會發現不好使。

<style scoped>.father-div .child-div{color:red;}</style>

因為到了瀏覽器上會解析成

<div data-v-384b136e ></div> 

不好使的原因是應為父組件內樣式內解析的是父組件的hash值,而子組件內標簽上添加的是子組件的hash值,對應不上當然沒效果,那怎么解決呢?

使用deep------

當遇到這種困擾的時候我們可以另寫一個style標簽,然后不加scoped屬性,來蓋子組件的樣式,當前這么寫是可以的,但是不太優雅,這時我們可以用到/deep/屬性,

.father-div /deep/ .child-div{color:red;}

當遇到'/deep/'的時候會將'/deep/'的位置替換成組件的hash值,解析成

.father-div[data-v-b45036b2] .child-div{color:red;}

這樣只需要注意css的權重就可以覆蓋子組件內的樣式了,

注意:子組件內最外層的樣式由于是帶了父子組件的兩個hash值,所以是會被兩頭控制的,不需要/deep/就可以在父組件內覆蓋樣式

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 国产午夜精品一区二区三区不卡 | 高清国产亚洲va精品 | 中文字幕无线码中文字幕网站 | 99精品热女视频专线 | 欧美日韩一区二区三区免费 | 青青热久久国产久精品 | 国产福利最新手机在线观看 | 国产午夜精品理论片久久影视 | 美国一级毛片片aaa 美国一级毛片片aa成人 | 日韩加勒比在线 | 国产男女爽爽爽免费视频 | 中文字幕s级优女区 | 欧美白人猛性xxxxx交69 | 另类视频在线 | 国产在线观看一区二区三区四区 | 99久久精品免费 | 国产精品一级毛片不收费 | 精品国产高清毛片 | 毛片视频网站 | 在线观看视频一区 | 欧美理论在线 | 欧美精品v欧洲精品 | 亚洲午夜在线观看 | 夜色sese| 精品国产一区在线观看 | 欧美日韩精品国产一区二区 | 91热久久 | 欧美日韩另类视频 | 日本成本人视频 | 日本一区二区三区不卡视频中文字幕 | 欧美成人亚洲国产精品 | 一区在线免费观看 | 一个人看的www片免费视频中文 | 国产a级特黄的片子视频免费 | 精品国产免费第一区二区三区日韩 | 成人久久18免费网站游戏 | 亚洲视频免费在线观看 | 国产高清在线精品一区a | 欧美成人免费大片888 | 国产农村乱 | 99热久久国产精品这 |