详解三种方式解决vue中v-html元素中标签样式

时间:2021-05-25

Vue为v-html中标签添加CSS样式

<template> <div class="hello"> <section> <h2 class="title">{{news.title}}</h2> <p class="news-time">{{news.datetime}}</p> <div class="con" v-html="news.dec"> </div> <button class="back" @click="goBack()">返回列表</button> </section> </div></template>

当我们使用v-html渲染页面,使用下面这种方式去修改样式并没有效果,

<style scoped lang="less">.con{ p { font-size: 14px; line-height: 28px; text-align: left; color: rgb(238, 238, 238); color: #585858; text-indent: 2em; }}</style>

解决方案:

当我们引入第三方组件或加载html元素时,想修改下样式,就可以用以下三种方式:

一.去掉<style scoped>中的scoped

这个方法不建议使用,会改变布局

二.定义两个style标签,一个含有scoped属性,一个不含有scoped属性

使用方法为

<style scoped> .introduction{ width: 100%; margin-bottom: 3rem; }</style><style> .introduction img{ width: 100%; object-fit: fill; }</style>

三.通过 >>> 可以使得在使用scoped属性的情况下,穿透scoped,修改其他组件的值

使用模板为:

.introduction>>> img{ width: 100%; object-fit: fill;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章