vue less scope的樣式中添加全局樣式,或者針對本頁面的 html body等app外層元素添加樣式的一些方法


1、vue less scope的樣式中添加全局樣式。

使用場景:

例如 

<div class="bd" v-html="htmlStr"></div>

其中, htmlStr = '<span class="title">標題</span>'

 

如果我們使用 scoped樣式, .bd .title{} 則無法生效。

可以使用深指向。例如

.bd >>> .title{}

則可以對起作用。 因為less loader等loaders 會自動忽略 >>>

注意,部分loader對 >>> 不能解析, 可以更換為  /deep/

.bd /deep/ .title{}

兩種方法是等價的。

2、在頁面中單獨設置body或者html等app外層的元素屬性。

首先,我們想到的當然是頁面內新增一個 不帶scoped的style標簽。 不過這樣寫了之后,發現其他頁面也收到污染。 因此,考慮通過在created聲明周期中進行添加,然后再beforeDestroyed周期中移除一個class的方式。

例如:

created() {
    document.body.classList.add('body-home');
  },
  beforeDestroy() {
    document.body.classList.remove('body-home');
  },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM