使用脚手架Vue项目之解析富文本时改变其中的图片格式

在Vue项目中,当使用接口数据渲染新闻详情页时遇到富文本中的图片样式问题。通常,图片已经在富文本中设定了width和height属性,导致无法直接应用自定义样式。本文总结了两种解决方案:一是通过正则表达式替换,直接在获取的数据上添加样式;二是创建不带scoped的style标签,在全局范围内为图片设置样式。这两种方法都能有效解决富文本图片样式覆盖的问题。
摘要由CSDN通过智能技术生成

做项目时遇到了这样的一个问题:

我做的是一个有关新闻的项目,做新闻详情页时使用请求的接口的数据,然后用v-html将它渲染到页面上,看上去没啥问题,但我忽视了新闻是有图片的。而富文本中已经给图片加上了width与height属性,这时用常规的方法是不能给这个图片加上你想要的样式的,一番百度后,我总结了两种方法来解决这样的情况。

<div class="content" v-html="articleList.content">

 </div>

方法:

一.对富文本使用正则替换

    getArticleList(id).then(res => {
      this.articleList = res.data
      this.articleList.content = this.articleList.content.replace(/<img/gi,
          '<img style="max-width:100%;height:auto;display:inline-block;margin:10px 
      auto;"');
    })

对请求回来的数据直接进行正则替换,加上样式 

二.在style中加样式

用脚手架创建的vue项目中的组件,默认style带有一个scoped属性,这个属性是保证style中的样式只对当前组件有用,如果在这里对富文本中的图片进行属性修改,是不起作用的。我们可以再写一个style,这里面不要写scoped,在这里给富文本中的图片的样式会有作用。

<style scoped lang="less">

</style>
<style lang="less">
.content{
  width: 100%;
  img{
    width: 100%;
  }
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值