粘贴多行内容(例如纯文本格式的电子邮件)会在行之间产生过多的间距,即使使用了显式的 margin:0 也会如此。
作者: mathieu-effetm创建于 2026年8月31日更新于 2026年8月31日
□ 总结
当粘贴HTML时,每个源的可视"行"是它自己的块级元素(<div>或 p>`)——这是几个电子邮件客户端如何格式化一个平坦的,无记名的信息(Outlook桌面,Outlook Web/"New Outlook",Gmail,Apple Mail)——Trix将每个这些块转换成它自己的单独的Trix段落. Trix自己在段落之间的默认差值然后适用于每一段,在行间产生明显大于来源的差值,即使来源在这些要素上明确设置了“差值:0”。
□再现.
时间轴 : <p样式='边距:0'> 第1行
<p样式='边距:0'> 第2行 <p样式='边距:0'> 第三行
直接粘贴(或称为“编辑.插入HTML(.)”)。 每行在Trix的文档模型中成为自己的块,由Trix的默认块边距所渲染出——源的'边距:0'没有效果.
□ 调查笔记
- 以真实世界样本复制:从Outlook Web("新展望")复制的多段电子邮件,若干段落带有一个明确的"style="边际:0px". 同样的结果。
- ** 不是最近的倒退。 ** 根据Trix 2.1.8(在DOMPurify之前,根据[CVE-2024-53847](https://GitHub.com/advisories/GHSA-6vx4-v2jw-qwqh)固定)和当前2.1.19(并用 " 编辑器. InvactedHTML () " ,直接与不涉及其他应用代码的 " 一起进行糊口消毒 " 测试过这一确切输入,结果与这两个字节完全相同。 所以这不是一个DOMPurify sanitization side effect 或绑定在任何特定的版本;每个被检查的版本的行为都是一样的.
- HTML 解析器中的`Get BlockElementMargin'/`window.getComputedStyle' 机械(仍在2.1.19中)看来是打算读取被粘贴的元素本身的边距,但从经验上看,并不妨碍上文描述的平面多相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相接相
□ 环境
- Trix 2.1.8和2.1.19直接测试;当前应用程序运行2.1.19
- Chrome(通过Puppeteer/Chrome测试)——尚未检查Firefox/Safari
# 工作间 #
我们透过检测多行贴面(一串只包含内含内容的花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花花 它相当适合应用(假设任何平面多块的面条会倒塌到平面断层),所以没有提出它是直接的固定,只是关于对我们有效的背景.内容来源: basecamp/trix