微信小程序从后端获取的图片,展示的时候上下没有完全拼接,有缝隙【已解决】

文章目录

  • 1、index.wxml
  • 2、index.js
  • 3、detail.detail
      • 为什么 `.rich-text-style` 样式可以生效?
        • 1. `<rich-text>` 组件的特殊性
        • 2. 类选择器的作用范围
        • 3. 样式优先级
        • 4. `line-height: 0` 的作用
        • 5. 为什么直接使用 `rich-text` 选择器无效?
      • 总结

在这里插入图片描述

上下两张图片,中间有一条白色缝隙,但是客户想要完全拼接。于是就开始分析代码。

1、index.wxml

<view class="marketing-materials-pannel-wrap"><view class="marketing-materials-pannel-box"><view class="marketing-materials-title-box"><view class="marketing-materials-item-title-box {{ currentIndex === index ? 'active-class': '' }}" wx:for="{{ detail.detailList }}" wx:key="item" data-index="{{ index }}" catch:tap="handleTitleClick">{{ item.active }}</view></view><view class="marketing-materials-item-value-box"><!-- <rich-text nodes="{{ detail.detailList[currentIndex].value || '' }}" /> --><rich-text nodes="{{ detail.detail }}" class="rich-text-style"/></view></view>
</view>

2、index.js

const properties = {detail: Object
}
const data = {currentIndex: 0
}
const observers = {}
const methodMap = {handleTitleClick(e) {const { index: currentIndex } = e?.currentTarget?.datasetthis.setData({ currentIndex })}
}
const customMethodMap = {}
const methods = {...customMethodMap,...methodMap
}
const behaviors = {}
const relations = {}
const externalClasses = []
const pageLifetimes = {show() {},hide() {},resize() {}
}
const lifetimes = {created() {},attached() {// 组件挂载到页面时调用console.log("Component attached, detail =", this.properties.detail);console.log("Component attached, detail.detail =", this.properties.detail.detail);},ready() {},moved() {},detached() {}
}Component({ properties, data, observers, methods, pageLifetimes, lifetimes, behaviors, relations, externalClasses })

3、detail.detail

<div><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_01_642681.jpg" style="max-width:100%;" contenteditable="false" /><p><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_02_311369.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_03_680880.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_04_504903.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_05_785733.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_06_138233.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_07_715648.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_08_281797.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_09_119610.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_10_517697.jpg" style="max-width:100%;" contenteditable="false" /><img src="https://www.crossbiog.com/product-detail/旭包鲜保鲜膜_11_238141.jpg" style="max-width:100%;" contenteditable="false" /></p>
</div>

为什么 .rich-text-style 样式可以生效?

你提到通过给 <rich-text> 组件添加一个自定义类名 class="rich-text-style",并且使用 .rich-text-style 选择器来设置样式后,图片之间的空隙问题得到了解决。这背后的原因涉及到微信小程序中样式的优先级和作用范围。

1. <rich-text> 组件的特殊性

<rich-text> 是微信小程序中的一个内置组件,用于渲染 HTML 字符串。它的内部内容是通过 Shadow DOM 渲染的,这意味着外部样式文件中的样式默认情况下不会直接影响到 <rich-text> 内部的内容。然而,微信小程序提供了一种机制,允许你通过为 <rich-text> 添加自定义类名来影响其内部内容的样式。

2. 类选择器的作用范围

当你为 <rich-text> 组件添加一个自定义类名(如 class="rich-text-style"),并使用该类选择器(如 .rich-text-style)来设置样式时,微信小程序会将这些样式应用到 <rich-text> 的内部内容中。这是因为微信小程序的样式系统会将带有自定义类名的 <rich-text> 视为一个特殊的容器,允许你通过类选择器来影响其内部元素的样式。

<!-- WXML -->
<rich-text nodes="{{ detail.detail }}" class="rich-text-style"></rich-text>
/* WXSS */
.rich-text-style {line-height: 0;
}

在这种情况下,.rich-text-style 样式不仅会应用到 <rich-text> 组件本身,还会传递给其内部的 HTML 元素(如 imgp 等),从而有效地解决了图片之间的空隙问题。

3. 样式优先级

使用类选择器(如 .rich-text-style)通常比标签选择器(如 rich-text)具有更高的优先级。因此,即使有其他全局样式或默认样式存在,.rich-text-style 中的样式也会优先应用,确保 line-height: 0 等样式能够生效。

4. line-height: 0 的作用

line-height: 0 是一种常见的技巧,用于消除行内元素(如 img)之间的空隙。默认情况下,img 标签是行内元素,浏览器会在每个行内元素之间插入一个空白字符(类似空格),这会导致图片之间出现空隙。通过将 line-height 设置为 0,你可以有效地消除这些空白字符,从而使图片完全拼接在一起。

5. 为什么直接使用 rich-text 选择器无效?

如果你尝试直接使用 rich-text 选择器来设置样式,可能会遇到样式不生效的问题。原因如下:

  • Shadow DOM 的隔离性<rich-text> 组件的内部内容是通过 Shadow DOM 渲染的,默认情况下外部样式文件中的样式无法直接影响到其内部元素。
  • 样式优先级:如果没有使用类选择器,可能某些默认样式或全局样式会覆盖你设置的样式,导致 line-height: 0 等样式无法生效。

因此,使用自定义类名(如 class="rich-text-style")并通过类选择器(如 .rich-text-style)来设置样式是一种更可靠的方式,可以确保样式能够正确应用到 <rich-text> 的内部内容中。

总结

  • <rich-text> 组件的内部内容是通过 Shadow DOM 渲染的,默认情况下外部样式无法直接影响其内部元素。
  • 通过为 <rich-text> 添加自定义类名(如 class="rich-text-style",并使用类选择器(如 .rich-text-style)来设置样式,可以有效地将样式应用到 <rich-text> 的内部内容中。
  • line-height: 0 是一种常见的技巧,用于消除行内元素之间的空隙,从而使图片完全拼接在一起。
  • 类选择器通常比标签选择器具有更高的优先级,因此使用类选择器可以确保样式优先应用。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/487014.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机的空调温度控制器设计

摘 要 随着国民经济的发展和人民生活水平的提高&#xff0c;空调已被广泛应用于社会的各种场合。空调因具有节能、低噪、恒温控制、全天候运转、启动低频补偿、快速达到设定温度等性能&#xff0c;大大提高了其舒适性&#xff0c;得到越来越多的人们的喜爱。单片机和数字温度传…

ElasticSearch常见的索引_集群的备份与恢复方案

方案一&#xff1a;使用Elasticsearch的快照和恢复功能进行备份和恢复。该方案适用于集群整体备份与迁移&#xff0c;包括全量、增量备份和恢复。 方案二&#xff1a;通过reindex操作在集群内或跨集群同步数据。该方案适用于相同集群但不同索引层面的迁移&#xff0c;或者跨集…

【计算机网络】实验12:网际控制报文协议ICMP的应用

实验12 网际控制报文协议ICMP的应用 一、实验目的 验证ping命令和tracert命令的工作原理。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑并进行信息标注&#xff0c;将所需要配置的IP地址写在对应的主机或者路由器旁边&#xff0c;如图1所示。 图…

Redis安装和Python练习(Windows11 + Python3.X + Pycharm社区版)

环境 Windows11 Python3.X Pycharm社区版 思路 1 github下载redis压缩包 &#xff0c;安装并启动redis服务&#xff0c;在客户端连接redis服务。 2 在pycharm中运行python程序&#xff0c;连接redis服务&#xff0c;熟悉redis的使用和巩固python语言。 3 python开发环境…

8.解决跨域问题的三种方案

开启域名&#xff0c;单点登录后&#xff0c;就使用最上面的接口了

【机器学习】基础知识:拟合度(Goodness of Fit)

拟合度概念及意义 拟合度&#xff08;Goodness of Fit&#xff09;是衡量统计模型对数据解释能力的指标&#xff0c;用于评价模型对观测数据的拟合效果。在回归分析、分类模型或其他预测模型中&#xff0c;拟合度是模型性能的重要衡量标准。 1. 拟合度的作用 拟合度的主要作用…

【Elasticsearch】实现用户行为分析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

初识Linux · 线程同步

目录 前言&#xff1a; 认识条件变量 认识接口 快速使用接口 生产消费模型 前言&#xff1a; 前文我们介绍了线程互斥&#xff0c;线程互斥是为了防止多个线程对临界资源访问的时候出现了对一个变量同时操作的情况&#xff0c;对于线程互斥来说&#xff0c;我们使用到了锁…

使用 LlamaFactory 结合开源大语言模型实现文本分类:从数据集构建到 LoRA 微调与推理评估

文章目录 背景介绍文本分类数据集Lora 微调模型部署与推理期待模型的输出结果 文本分类评估代码 背景介绍 本文将一步一步地&#xff0c;介绍如何使用llamafactory框架利用开源大语言模型完成文本分类的实验&#xff0c;以 LoRA微调 qwen/Qwen2.5-7B-Instruct 为例。 文本分类…

【已解决】MacOS上VMware Fusion虚拟机打不开的解决方法

在使用VMware Fusion时&#xff0c;不少用户可能会遇到虚拟机无法打开的问题。本文将为大家提供一个简单有效的解决方法&#xff0c;只需删除一个文件&#xff0c;即可轻松解决这一问题。 一、问题现象 在MacOS系统上&#xff0c;使用VMware Fusion运行虚拟机时&#xff0c;有…

【教程】创建NVIDIA Docker共享使用主机的GPU

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 这套是我跑完整理的。直接上干货&#xff0c;复制粘贴即可&#xff01; # 先安装toolkit sudo apt-get update sudo apt-get install -y ca-certifica…

设备CTA进网许可认证有哪些值得注意的测试内容?

设备进网许可认证的测试项目与测试内容有哪些?在CTA进网认证过程中是否存在需要注意的地方?本篇是英利检测针对这两点给大家进行的资料整理&#xff0c;帮助大家更进一步了解项目难点所在。 一、电磁兼容测试(EMC测试) 电磁兼容测试旨在评估设备在电磁环境中的表现&#xff0…

flex布局容易忽略的角色作用

目录 清除浮动 作用于行内元素 flex-basis宽度 案例一&#xff1a; 案例二&#xff1a; 案例三&#xff1a; flex-grow设置权重 案例一&#xff1a; 案例二&#xff1a; 简写flex-grow:1 0 auto; 目录 清除浮动 作用于行内元素 flex-basis宽度 案例一&#xff1a…

vue自定义弹窗点击除了自己区域外关闭弹窗

这里使用到vue的自定义指令 <div class"item" v-clickoutside"clickoutside1"><div click"opencity" class"text":style"{ color: popup.iscitypop || okcitylist.length ! 0 ? #FF9500 : #000000 }">选择地区…

旧衣物回收小程序搭建,便捷回收,绿色生活!

随着人们生活水平的提高&#xff0c;各种衣物的更新速度逐渐加快&#xff0c;为了减少衣物的浪费&#xff0c;旧衣物回收市场受到了人们的关注。 如今&#xff0c;旧衣物回收行业的技术正在不断创新&#xff0c;利用科技的发展&#xff0c;结合了互联网的模式&#xff0c;提高…

自动驾驶数据集的应用与思考

数据作为新型生产要素&#xff0c;是数字化、网络化、智能化的基础&#xff0c;是互联网时代的“石油”“煤炭”&#xff0c;掌握数据对于企业而言是能够持续生存和发展的不竭动力&#xff0c;对于需要大量数据训练自动驾驶系统的企业而言更是如此。 而随着激光雷达、毫米波雷…

LLM - 01_了解LangChain和LangChain4J

文章目录 官网概述LangChainLangChain的核心功能LangChain的应用场景 LangChain4JLangChain4J的特点LangChain4J的应用场景 LangChain vs LangChain4J小结 官网 https://www.langchain.com/langchain https://docs.langchain4j.dev/ 概述 随着人工智能和自然语言处理&#…

文献补充材料怎么查找下载

最近很多同学求助问补充文献怎么查找下载&#xff0c;补充文献一般会在文献的详情页&#xff0c;参考文献的上面。需要注意以下这些词汇&#xff1a;Supplementary data、Supplementary material、Appendix、Supplementary Information、Appendix A. Supplementary data、suppl…

Redis(二)

Redis 事务 什么是 Redis 事务&#xff1f; 你可以将 Redis 中的事务理解为&#xff1a;Redis 事务提供了一种将多个命令请求打包的功能。然后&#xff0c;再按顺序执行打包的所有命令&#xff0c;并且不会被中途打断。 Redis 事务实际开发中使用的非常少&#xff0c;功能比…

Spherical Harmonics (SH)球谐函数的原理及应用【3DGS】

Spherical Harmonics &#xff08;SH&#xff09;球谐函数的原理及应用【3DGS】 前言球谐函数&#xff08;Spherical Harmonics, SH&#xff09;球谐函数不同阶的表达式以及有什么不同&#xff1f;具体介绍球谐函数基函数球谐函数 前言 高斯泼溅Gaussian Splatting (GS) GS 模…