解决uniapp小程序富文本图片存在间隙

本文介绍了CSS中利用font-size:0来消除内联元素如inline-block、inline之间的间距问题。这种方法相比margin负值、letter-spacing、word-spacing和浮动等其他解决方案更为简便有效。实践中,可以通过在父元素设置font-size:0来实现,例如在rich-text组件中应用此样式可以解决元素间的间隔问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css中font-size为0的妙用(消除内联元素间的间隔,像:inline-block、inline)

当内联元素在一行挨着排列时,两个之间会有间距,解决办法就是在它们的父元素添加一个 font-size:0;就可以让它们这之间没有间距。
在这里插入图片描述
解决方法还有一些,例如:margin负值 , letter-spacing, word-spacing,浮动等但是最佳的解决方案还是font-size:0

实践运用
在这里插入图片描述
方式一,适用于parser组件(推荐)
rich-text 给样式font-size:0;即可解决-实践成功

<parser :html="detail" style="font-size: 0;"/>
<!-- <rich-text :nodes="detail" style="font-size: 0;"></rich-text> -->

方式二(不推荐,本人在使用时不生效)

let IsReg = new RegExp('<img', 'gi'); //表明规则  表格则是< table 
//放入本地data中
this.DataMsg=res.data  //获取到数据
//将图片的宽度改为合适的宽度   如果display:block 则可以独占一行显示
this.DataMsg= _this.DataMsg.replace(IsReg, `<img style="max-width: 100%;display:block;"`);
### 如何在 UniApp 中解析和渲染富文本 #### 使用 uParse 插件解析 HTML 字符串 对于文章资源类或博客类的小程序而言,经常遇到的数据格式为 HTML 或 MD。为了美观地展示这些内容,在 UniApp 中可以利用 `uParse` 插件来实现富文本的解析与渲染[^1]。 安装并引入 `uParse` 后,可以在页面模板中通过如下方式调用: ```html <u-parse :content="articleContent"></u-parse> ``` 其中 `articleContent` 是存储着要被解析的内容变量名。此方法能够有效处理来自服务器端返回的文章数据,并将其按照预期样式呈现给用户查看。 #### 处理富文本渲染中的图片空白间隙问题 当使用某些特定组件库(如 uView-plus)内的富文本解析器时,可能会遇到图片存在不必要的空白间距的情况。针对这一现象有两种常见解决方案: - **设置字体大小为零**:通过对包含图像元素的父容器应用 CSS 属性 `font-size: 0` 来移除因内联布局引起的缝隙;然而这种方法可能会影响到同一区域内其他非图片类型的文本显示效果[^2]。 - **调整 img 显示模式**:更推荐的做法是把 `<img>` 标签定义成块级元素 (`display:block`) ,从而彻底消除相邻两张图之间的多余留白空间而不影响到任何文字部分。 具体修改可参照以下代码片段实施: ```css /* 方法一 */ .rich-text-container { font-size: 0; } /* 方法二 */ img { display: block; } ``` #### 应对 iframe 不兼容情况下的视频嵌入难题 如果尝试直接将含有 `<iframe>` 的 HTML 片段传递给 `uParse` 进行解析,则很可能会碰到该标签不被支持而导致内部视频无法正常播放的问题。对此建议采取替代方案——即手动提取出视频链接地址并通过原生 API 创建对应的播放控件实例完成加载操作[^3]。 例如,可以通过监听 `uParse` 提供的相关事件钩子函数获取最终生成 DOM 结构之后再做进一步定制化改造: ```javascript this.$refs.uParse.getHtml(html => { const videoUrl = extractVideoUrlFromHtml(html); createCustomPlayer(videoUrl); // 自定义创建播放器逻辑 }); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值