Vue.js中v-html渲染的dom添加scoped的样式的方法介绍


本文摘自PHP中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于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/ 操作符取而代之――这是一个 >>> 的别名,同样可以正常工作。

示例

1

2

3

4

5

6

7

8

9

10

11

<div v-html="contentView"></div>

 

<style scoped>

.product-content {

    ...

    /deep/ h4 {

      color: #333;

      ...

    }

  }

</style>

【相关推荐:JavaScript视频教程】

以上就是Vue.js中v-html渲染的dom添加scoped的样式的方法介绍的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

vue.js循环引用组件报错怎么办

javascript如何实现加减乘除

javascript怎么删除元素属性

vue.js全家桶是什么

javascript对象和数组的区别是什么

javascript中日期如何转为时间戳

javascript中的继承方式有哪些

javascript中进程和线程的区别是什么

vue.js 学习之二:数据驱动开发

怎样启动一个vue.js项目

更多相关阅读请进入《vue.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...