1. 程式人生 > >vue單檔案中scoped樣式如何穿透?

vue單檔案中scoped樣式如何穿透?

  在vue檔案中的style標籤上,有一個特殊的屬性:scoped。當一個style標籤擁有scoped屬性時,它的CSS樣式就只能作用於當前的元件,也就是說,該樣式只能適用於當前元件元素。通過該屬性,可以使得元件之間的樣式不互相汙染。如果一個專案中的所有style標籤全部加上了scoped,相當於實現了樣式的模組化。

  但當引用第三方元件,需要在元件中區域性修改第三方元件的樣式,而又不想去除scoped屬性造成元件之間的樣式汙染。此時只能通過特殊的方式,穿透scoped。處理方式如下:

  第一種方式:

    (1)使用 >>> 操作符

        外層  >>>  第三方元件 {  樣式  }

        <style scoped>

      .a >>> .b { /* ... */ }

           </style>

    (2)使用 /deep/ 操作符

        當使用 sass/scss之類的前處理器無法正確解析 >>>,可以使用deep/ 操作符

        外層  /deep/  第三方元件 {  樣式  }

        <style scoped>

      .a /deep/ .b { /* ... */ }

           </style>