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

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;

}

以上是 详解三种方式解决vue中v-html元素中标签样式 的全部内容, 来源链接: utcz.com/z/318858.html

回到顶部