开发者工具 · HTML WYSIWYG 编辑器
杂散和空段落:破坏布局的小标记习惯 ( )
· 为什么它很重要
html 文本清理 内容可编辑
展示双空格、Enter-for 空格和尾随换行符如何成为在窄屏幕上行为不当的实体和空块,以及如何在标记中发现它们。 ( )
在移动设备上不会换行的行 — 以由不间断空格连接在一起的标题开头
与不间断空格连接的标题可能会拒绝包裹在狭窄的卡片内,从而将其容器推得更宽或造成尴尬的溢出。这些字符在可视化编辑器中看起来像普通空格,因此可能需要源代码检查或代码点感知工具来识别原因。
ToolAcre 通过其本地解码器和转义路径标准化实体,但它没有专门用于查找或删除不间断空格的命令。清理片段不是响应式布局修复。编写者必须检查文本和目标行为,而不是期望白名单更改有效的空格字符。
不间断空格如何输入内容;该编辑器没有定义特殊的插入规则
不间断空格可以来自粘贴的文档、有意的实体或保留连续视觉间距的应用程序。存储库并未证明 ToolAcre 本身将两个类型化空格转换为不间断空格,因此本文不会将该行为分配给其 contenteditable 主机。
当实体解码器已知粘贴的命名引用时,清理程序会在重新发出文本之前解析它。作者的拼写可能会改变,但基本字符仍然存在。 URL 中的未知命名引用会被拒绝,因为浏览器可能比这个较小的表理解更多的实体。
空段落作为间距 — 描述 <p> </p> 和尾随 <br> 用于将内容下推 ( )
空段落和尾随 br 元素通常用作手动分隔符。它们仍然是内容节点,其表观高度取决于目标 CSS。 ToolAcre 接受 p 和 br,因此空的允许块或不必要的中断不会因为不安全而被自动拒绝。
重复按 Enter 可以创建依赖于浏览器的 DOM,随后通过清理程序缩小范围。由于面板未配置分隔符或承诺键行为,因此请检查输出。删除没有意义的空白结构,然后在目标中使用样式表边距和布局基元。
为什么这些会破坏响应式布局 - 涵盖无换行行为、设备间间隙不一致以及堆叠边距
不间断空格可防止在其位置出现符合条件的换行符。单词之间的多个链接可以将短语保持在一起,超出可用宽度。空块根据样式添加边距或行框,因此在一次预览中看似正确的间隙可能会在其他地方加倍或消失。
这些效果取决于上下文。沙箱使用自己的轻文档 CSS,无法复制移动 CMS 卡或电子邮件客户端。测试实际宽度、字体和样式表条件。来源检查发现嫌疑人;它不会取代目标环境中的渲染测试。
工作示例:检查样本而不要求生成固定数量的工件
创建一个带有不间断空格的示例标题,后跟一个空 p 和一个以两个 br 元素结尾的段落。在目标或浏览器工具中以窄宽度查看它,然后检查 ToolAcre 源以找到每个字符和节点。
仅删除没有语义目的的工件。地址可以合法地使用 br,并且不间断空格可以在样式指南下正确地将数字绑定到单元。审查问题是无换行或空块是否表达了含义或仅补偿一种临时布局。
从源头修复,而不是通过 CSS hacks — 解释了消除习惯而不是围绕它们设计样式
从源头修复内容,而不是为空块添加越来越具体的 CSS 选择器。删除意外的间隔段落,用普通文本替换装饰性重复空格,并让页面组件控制节奏。这会在宽度和主题上产生更清晰的行为。
不要引入隐藏每个空段落而不审查编辑系统的全局规则。某些工作流程可能依赖于它们,即使这种依赖应该被迁移。本地修正加上衡量的迁移计划比掩盖未知存储内容的 CSS 补丁更安全。
这不包括什么 - CSS 间距系统或整个站点的批量清理
本文没有定义站点间距系统、批量数据库清理或通用排版规则。它不承诺本地解码器在测试用例之外识别哪些实体,并且避免声明所有视觉双空间都源自一个应用程序。
它也不将干净的源代码与安全的恶意 HTML 等同起来。 ToolAcre 的预览沙箱和狭窄的许可名单有明确的界限。服务器发布仍然需要适当的卫生,而响应正确性需要目标渲染和可访问性审查。
要点:每份草稿阅读一次标记 — 总结清单以及 ToolAcre 的 HTML WYSIWYG 编辑器如何使实体和空块可见
每个草稿阅读一次标记,尤其是在丰富的粘贴和重复按 Enter 键之后。查找无换行字符、空块和尾随中断,然后确定每个字符是否具有含义。当在档案和多个主题中相乘时,小工件会变得昂贵。
ToolAcre 使接受的结构可见,并且可以重写不受支持的包袱,但有效的间距工件仍然是编辑的责任。故意删除它们,保留合法的中断并测试最终通道。干净的源代码和弹性的 CSS 协同工作;两者都不能自动推断对方。