
在浏览器中看起来正确的标题可以在全页屏幕截图中出现六次。页面没有重复标题;捕获过程在六个不同的滚动位置观察到相同的视口附加元素。同样的效果也会影响 cookie 横幅、聊天启动器、视频控件、进度指示器和“返回顶部”按钮。
本指南解释了文档内容和视口附加界面之间的区别,然后记录了当前的屏幕截图 PDF 0.0.13 策略。它还展示了如何验证结果,而不假装一个选择器可以识别网络上的每个浮动组件。
CSS position: fixed 的元素相对于视口定位。粘性元素的行为与普通内容类似,直到达到阈值,然后在其容器滚动时保持附加状态。 MDN 的 position 参考描述了这些布局行为。
一种全页工具,可捕获一个又一个视口,并在每个切片中看到元素。当使用文档坐标缝合这些切片时,重复的元素将成为每个边界处图像的一部分。将 fixed 转换为 absolute 很诱人,但更改位置可能会触发回流、更改响应断点、重叠内容或将元素移动到不相关的位置。
该扩展记录每个候选者的原始内联 visibility 值。它不会重写元素的定位。在第一个切片之后,候选者将被隐藏,并遵循重要的可见性规则;它们的占用布局和周围内容的尺寸保持稳定。最后,恢复原来的可见性。
第一个切片故意保留标题和其他可见接口。这会保留用户看到的页面开头,同时避免以后重复。如果标头本身不相关或包含私人帐户信息,请在捕获之前将其忽略或屏蔽,而不是假设扩展程序应将其删除。

没有通用的 sticky-header 类。屏幕截图 PDF 结合了两种方法:
fixed 或 sticky 的名称。fixed 或 sticky 定位。视觉采样步骤捕获 CSS 模块和运行时生成的接口,其类名不显示任何内容。它还会在后面的切片中再次运行,因为某些站点仅在滚动后才创建登录提示、广告或应用程序栏。
这是有界启发式,而不是证明。采样点外部的微小浮动元素、闭合阴影根内部的组件或捕获瞬间创建的覆盖层可能会逃脱检测。结果还需要检验。
使用公共捕获装置,或构建一个带有一个粘性标题和一个固定角徽章的非敏感页面。
第五步很重要。如果源页面在异常后仍然被修改,那么视觉上正确的输出是不够的。
重复的标题在规则的视口间隔内具有相同的像素。重叠通常显示两个不同的内容区域占据相同的空间,通常是因为页面高度在捕获之间发生了变化。后期加载图像、扩展广告、字体交换和动画手风琴可以在录制切片后移动内容。
如果图案相同且周期性,请研究固定或粘性界面。如果图案包含不同的内容或不规则的偏移,请稳定页面:等待媒体、暂停动画、关闭扩展面板并捕获较小的部分。隐藏标题不会修复仍在改变高度的布局。
Cookie 同意控制可能是您需要记录的状态的一部分。有关同意横幅的支持案例不应自动将其删除。相反,与文档无关的横幅可能会掩盖内容或在每个接缝处重复。在驳回任何事情之前,先确定捕获的目的是为了证明什么。
聊天启动器可以显示姓名、消息预览或未读计数。当它们不相关时,在捕获之前关闭它们。如果聊天内容是主题,请使用带有适当编辑的专用捕获,并且不要依赖自动浮动元素抑制来保留对话。
当限制很重要时,捕获较短的重叠部分、使用页面的打印视图或使用官方导出。记录解决方法,而不是将结果呈现为未更改的整页状态。
成功的浮动元素结果具有一个有意的标题、接缝处没有重复的工具栏、没有内容移入隐藏元素的空间以及完全恢复的源页面。比较顶部、中间和底部的实际尺寸。这种验证比判断压缩缩略图更可靠。
重复的标题是一个具有可测试机制的布局问题。保留第一个有意义的实例,在不回流的情况下抑制后来的视口副本,恢复源页面,并记录启发式无法安全决定的任何内容。