您好,登錄后才能下訂單哦!
小編給大家分享一下Vue.js中v-html渲染的dom添加scoped樣式的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在vue.js中,要將一段字符串渲染成html,可以使用v-html指令。
但是 官方文檔 中的v-html部分也提醒了
在單文件組件里,scoped
的樣式不會應用在v-html
內部,因為那部分 HTML 沒有被 Vue 的模板編譯器處理。如果你希望針對 v-html 的內容設置帶作用域的 CSS,你可以替換為 CSS Modules 或用一個額外的全局 <style> 元素手動設置類似 BEM 的作用域策略。
除了官方文檔給的方案以外,有一個更簡便的方式:深度作用選擇器
如果你希望 scoped 樣式中的一個選擇器能夠作用得“更深”,例如影響子組件,你可以使用>>>
操作符:
<style scoped>
.a >>> .b { / ... / }
</style>
上述代碼將會編譯成:
.a[data-v-f3f3eg9] .b { / ... / }
有些像 Sass 之類的預處理器無法正確解析 >>>。這種情況下你可以使用 /deep/ 操作符取而代之——這是一個 >>> 的別名,同樣可以正常工作。
<div v-html="contentView"></div> <style scoped> .product-content { ... /deep/ h5 { color: #333; ... } } </style>
以上是“Vue.js中v-html渲染的dom添加scoped樣式的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。