淺識深度選摺器( deep 或 )

2021-10-23 17:11:38 字數 1311 閱讀 2464

之前在開發中遇到乙個問題,vue專案結合element ui使用。

但是element ui的樣式不一定符合我們的需求,這時我們就需要改變它的樣式。

比如博主使用到了element ui的**,但是**有預設的背景色,滑鼠滑過還有預設的高亮顏色。

我想要改變這個滑鼠滑過的樣式,所以我需要在頁面中審查元素找到對應的標籤。

但是當我找到並且複製,然後試圖去改變它的樣式時,怎麼都沒辦法改變。

我以為是權重的問題,所以我加 ! important,但是也毫無作用。

當我審查元素發現此樣式就沒有作用到,就相當於它沒有找到這個元素,所以也就不存在改不改變樣式的問題了。

這時我們就需要乙個選擇器能深度的幫助我們找到這個元素,比如 deep(劃重點)

如果你希望 scoped 樣式中的乙個選擇器能夠作用得「更深」,例如影響子元件,你可以使用 >>> 操作符:

.a >>

>

.b <

/style>

123

上述**將會編譯成:

.a[data-v-f3f3eg9]

.b 1

有些像 sass 之類的預處理器無法正確解析 >>>。這種情況下你可以使用 /deep/ 操作符取而代之——這是乙個 >>> 的別名,同樣可以正常工作。

less使用/deep/

123456
例如:

輪播點這樣改為白色是不起作用的

.swiper-pagination-bullet-active

123

這個時候就可以用到深度作用選擇器

/deep/.swiper-pagination-bullet-active

1、這是我起初試圖改變的方法(親測無效):

.el-table--enable-row-hover .el-table__body tr:hover>td

2、這是使用deep後的方法(親測有效):

.el-table--enable-row-hover /deep/ .el-table__body tr:hover>td

原理就是通過找到父元素深度的找到我們需要改變的子元素,然後改變它的樣式即可。

感覺發現了什麼不得了的東西。

是不是意味著我使用第三方ui 庫,就可以隨意改變它的樣式了。

好了,以上就是deep的一些基本用法,如需深入了解,請參考官方介紹。