Vue中v-html图片过大导致溢出的问题及解决

目录
  • vue v-html图片过大导致溢出
    • 问题描述
  • 关于富文本渲染内容图片溢出问题
    • 描述问题场景
    • 解决方法
  • 总结

    vue v-html图片过大导致溢出

    问题描述

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

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

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

    CSS

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

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

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

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

    描述问题场景

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

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

    • PC端:

    图片不溢出

    • 移动端:

    图片溢出

    解决方法

    使用深度选择器

    /deep/ .content img {
    	width: 100% !important;
    }
    
    /* 或者 */
    
    .content >>> img {
    	width: 100% !important;
    }
    

    使用正则匹配

    // 将你要渲染的数据进行字符串正则匹配
    this.goods_info.content = res.data.data.goods_info.content.replace(/<img/g,"<img style='max-width:100%;height:auto;'");
    

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

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

    正则之后的数据

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

    您可能感兴趣的文章:

    • vue中v-html妙用及空白行消除方式
    • vue指令v-html和v-text
    • vue中{{}},v-text和v-html区别与应用详解
    • vue通过v-html指令渲染的富文本无法修改样式的解决方案
    • 在vue中利用v-html按分号将文本换行的例子

    Published by

    风君子

    独自遨游何稽首 揭天掀地慰生平

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注