富文本使用v-html渲染图片过大,溢出的解决方案



 

问题描述

移动端开发中,经常遇到渲染富文本的需求!但是也会有很多问题,比如遇到 v-html 渲染富文本时图片会溢出,内容里边的图片太大,导致图片把页面撑的比较宽

找了很多方法没有用!然后自己试了好几种方法!最后通过简单的 一行 css 代码让图片正常显示了

图片太大,把页面变成可以左右滑动,让之前一些样式失效,比如下面的 标头(商品详情) 原来是居中的位置

CSS

1

2

3

4

5

<style scoped lang="scss">

 ::v-deep img{

     max-width:100%;

 }

</style>

通过加上上面的代码,页面的图片就可以正常显示了

可以看到图片 的宽度和高度 进行了等比例的缩小

关于富文本渲染内容图片溢出问题

描述问题场景

前提:最近做的一个项目,包含了PC端和手机端,共用同一组数据库的数据。

导致了,有些富文本内容在PC端录入的图片,在PC端显示正常,而在移动端的显示的图片则会溢出屏幕。

  • PC端:

图片不溢出

  • 移动端:

图片溢出

解决方法

使用深度选择器

1

2

3

4

5

6

7

8

9

/deep/ .content img {

    width: 100% !important;

}

/* 或者 */

.content >>> img {

    width: 100% !important;

}

使用正则匹配

1

2

// 将你要渲染的数据进行字符串正则匹配

this.goods_info.content = res.data.data.goods_info.content.replace(/<img/g,"<img style='max-width:100%;height:auto;'");

然后再渲染出来,就可以正常了:

1

<div v-html="goods_info.content"></div>

正则之后的数据

<style scoped lang="scss">
 ::v-deep img{
     max-width:100%;
 }
</style>
摘自:


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值