之前在開發中遇到乙個問題,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的一些基本用法,如需深入了解,請參考官方介紹。