vue用v-html加载渲染,里面的内容样式不生效

做一个商品的详情页,需要输出富文本的内容,需要设置里面的图片样式最大宽度100%。可是设置img 100%后没反应,看F12检查元素也没加上去。

解决方法有2个:
1、scoped属性导致css仅对当前组件生效(用css3的属性选择器+生成的随机属性实现的),而html绑定渲染出的内容可以理解为是子组件的内容,子组件不会被加上对应的属性,所以不会应用css.解决的话把scoped属性去掉就行了。

2、另外一种常用的方法利用vue的深度作用选择器。要为v-html渲染出中的标签添加CSS样式,我们需要在写样式的时候添加>>>就可以搞定了,如下:

.desc-detail .desc-view >>> img{
    display: block;
    max-width: 100%;
  }

如果使用方法2,是不能用less或者scss,需要使用css语法,否则会报错

    原文作者:soso辉
    原文地址: https://segmentfault.com/a/1190000019625437
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞