Vue3樣式滲透之deep()為什么無效詳解
今天學(xué)習(xí) /deep/ 樣式穿透,因為vue3中已經(jīng)使用:deep()取代了/deep/ ,所以直接用:deep()練習(xí)。
:deep()的使用場景:
如果給當(dāng)前組件的style 節(jié)點添加了scoped 屬性,則當(dāng)前組件的樣式對其子組件是不生效的。如果想讓某些樣式對子組件生效,則需要使用:deep()。
我原本覺得這個沒有難度,于是寫了個案例來驗證。然后問題出現(xiàn)了,:deep()定義的樣式在子組件中不起作用。
我開始找錯,把包括冒號、括號在內(nèi)的語法格式等都檢查了一遍,發(fā)現(xiàn)語法格式?jīng)]有問題,控制臺也不報錯,但是:deep()格式的樣式在子組件中就是無效。
幸好我這兒有一個:deep()格式起作用的范例,沒辦法,只好把兩個文件中的父組件、子組件逐一比對,前后費了不少時間,終于找到了問題所在。
我在前面練習(xí)的時候,Vue2.X中要求元素必須在一個根節(jié)點中,Vue3.X無此要求,可以不在一個根節(jié)點中,所以為了驗證這一點,我把外層的
刪去了,果然不報錯。

可是問題就出在這個根節(jié)點上,如果App.vue中沒有這個根節(jié)點,那么:deep()不起作用,我把根節(jié)點加上,:deep()樣式就生效了。
唉,感覺自己被這個根節(jié)點坑了一把。
1.父組件App.vue中代碼
<style lang="less" scoped>
:deep(.title3){
background-color:antiquewhite;
}
</style>
2.子組件中的代碼
<template> <h3 class="title3">受父組件影響的內(nèi)容</h3> </template>
還有一點讓我覺得新鮮,CSS中顏色的色塊有兩個。

附:vue3 :deep() 深度選擇器使用
#swiper >.swiperContext :deep(p) {
width: 100vw;
height:60vw;
background: #000;
border:5px solid;
box-sizing: border-box;
color: #fff;
border-radius: 5%;
}
總結(jié)
到此這篇關(guān)于Vue3樣式滲透之deep()為什么無效的文章就介紹到這了,更多相關(guān)Vue3樣式滲透deep()無效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Vue實現(xiàn)Excel解析與導(dǎo)出功能詳解
導(dǎo)入導(dǎo)出excel這是前端做管理系統(tǒng)最常用的功能了,下面這篇文章主要給大家介紹了基于Vue實現(xiàn)Excel解析與導(dǎo)出功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2021-08-08
vue上傳項目到git時,如何忽略node_modules文件夾
這篇文章主要介紹了vue上傳項目到git時,如何忽略node_modules文件夾,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue實現(xiàn)一種簡單的無限循環(huán)滾動動畫的示例
這篇文章主要介紹了Vue實現(xiàn)一種簡單的無限循環(huán)滾動動畫的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
vue大屏自適應(yīng)的實現(xiàn)方法(cv就能用)
最近在用VUE寫大屏頁面,遇到屏幕自適應(yīng)問題,下面這篇文章主要給大家介紹了關(guān)于vue大屏自適應(yīng)的實現(xiàn)方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-06-06

