常见问题与知识点
font-display是CSS @font-face规则中的一个属性,用于控制字体加载过程中的显示行为。它决定了自定义字体完全加载之前,浏览器如何处理文本的渲染。在字体加载期间,浏览器靠两个选择:FOIT(Flash of Invisible Text,文本不可见)或FOUT(Flash of Unstyled Text,显示回退字体)。错误的设置(如默认的auto)可能导致文本长时间不可见,严重影响LCP(Largest Contentful Paint)和用户体验。使用swap可确保文本立即可见,避免空白页面。
WOFF2(Web Open Font Format 2)是目前Web字体的最佳选择。相比WOFF平均减少约30%的文件大小,比TTF减少约50-70%。它使用Brotli压缩算法,所有现代浏览器(Chrome、Firefox、Safari、Edge)均已支持。更小的文件意味着更快的下载和解析速度。推荐在@font-face中将WOFF2放在src列表的最前面,浏览器会优先使用它。工具会自动检测字体格式并给出升级建议。
preconnect提前建立与字服务器的连接(DNS + TCP + TLS),适用于Google Fonts等CDN字体,减少连接建立延迟约100-300ms。preload强制浏览器优先下载特定资源,适用于关键字体确保渲染时已可用。最佳实践:对Google Fonts使用preconnect:link rel="preconnect" href="https://fonts.gstatic.com" crossorigin;对自托管关键字体使用preload:link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin。注意不要预加载所有字体,只预加载首屏渲染所需的关键字体。
字体子集化是从字体文件中提取仅包含所需字符的子集,大幅减少文件体积。对于中文、日文等大字符集字体尤为重要,完整中文字体通常5-15MB,子集化后可降至150-500KB(WOFF2格式)。推荐工具:glyphhanger命令行工具分析实际使用字符、Font Squirrel Generator在线工具、Google Fonts通过text=参数请求特定子集、unicode-range在CSS中声明覆盖范围。
当自定义字体加载完成后替换回退字体时,如果两种字体的度量指标不同,文本尺寸会发生变化,导致CLS。降低CLS的策略:使用font-display: swap配合度量接近的回退字体;使用size-adjust属性微调回退字体尺寸;使用ascent-override、descent-override等字体度量覆盖属性减少布局偏移;预加载关键字体缩短回退字体显示的时间窗口。
可变字体将多个字重、宽度、斜体等合并到单一文件中,通过CSS参数动态调整字体外观。性能优势包括:减少HTTP请求,一个文件替代多个传统字体文件;总文件体积更小,通常比多个独立字重文件总和小30-50%;排版更灵活,可精确设置字釖如437而非仅限于固定值。Google Fonts支持可变字体,在URL中添加wdth,wght@参数即可使用。本工具会检测可变字体使用并给出优化建议。
两者各有优势。Google Fonts CDN优势:全球CDN加速,用户可能已缓存常见字体,自动提供最优格式和子集,零维护成本。自托管优势:减少DNS查询和连接建立,完全控制缓存策略和加载行为,更好的隐私保护,可使用preload进行更激进优化。建议:对性能要求极高的网站,自托管关键字体+preload是最佳选择;一般网站使用Google Fonts+preconnect即可获得良好性能。工具会根据字体来源推荐对应的加载策略。
好的字体回退方案能减少CLS并改善加载体验:匹配x-height,选择与自定义字体x-height相近的回退字体;使用系统字体栈如-apple-system, BlinkMacSystemFont, Segoe UI, Roboto等;利用size-adjust微调回退字体尺寸;使用浏览器DevTools的网络节流功能模拟慢速网络测试字体切换效果。示例:使用Montserrat时,可用Arial, Helvetica, sans-serif作为回退,它们的几何特征较为接近。工具会自动分析并推荐最佳回退字体配置。
机器人变声效果 - Web Audio 录制添加特效
录制一段音频,实时添加机器人、外星人、回声等音效并下载,不依赖服务器。
颜色变量命名工具 - 语义化名称建议
输入颜色十六进制值,根据色相和明度给出类似`--color-primary-500`的命名建议。
robots.txt 测试模拟器 - 验证爬虫规则
输入网站robots.txt内容与用户代理,测试指定URL是否被允许抓取,SEO优化辅助。
结构化数据代码快速检查 - 验证 JSON-LD 语法与必填属性
粘贴 JSON-LD 代码,校验语法并提示常见类型的必填属性缺失,辅助 SEO 调试。
Datalist 自动建议增强演示 - 动态数据源
演示如何动态更新 datalist 选项以实现搜索建议,并处理键盘选择。
Webhook载荷美化器 - JSON/XML自动缩进
粘贴原始Webhook请求体,自动识别并格式化,便于阅读调试。
SVG噪点/颗粒质感生成器 - 叠加纹理背景
生成可平铺的细微颗粒、皱纸或帆布质感SVG滤镜,用于网页高级感。
CSS 容器查询演示 - @container 根据父元素响应
设置容器宽度阈值,改变容器大小观察组件内部样式的变化,学习容器查询用法。
高级文本差异对比 - 逐词高亮与智能合并
并排显示两段文本差异,字符级高亮且支持三路合并视图,解决冲突更直观。
滚动深度追踪器 - 测量用户阅读百分比
记录用户在页面上的最大滚动深度(25%、50%、75%、100%),并生成可视化热图。
仿生阅读转换器 - 实时加粗前半部分字母
输入网址或文本,将单词首部字母人工加粗,引导视线快速移动,提升阅读速度。
XSS 过滤器测试沙盒 - 输入转义与过滤演示
输入可能的攻击向量,选择不同的转义或过滤策略,实时查看是否被安全处理,教育安全开发。
增强版字数统计器 - 中英日韩混合精确计数
支持多语言字符分割,准确统计汉字、英文单词、日文假名数量,并评估社交媒体发文长度。
仿生阅读文本生成器 - 单词前半加粗提升速读
将英文文本转换为单词前几个字母加粗的格式,引导视线跳跃式阅读,模拟Bionic Reading效果。
A/B 测试显著性计算器 - Z 检验与 P 值
输入对照组和实验组的用户数与转化数,计算 Z 值、P 值,判断是否具有统计显著性。
WebSocket压力测试 - 并发连接发送
配置WebSocket地址,模拟多个并发连接,发送自定义消息并记录响应延迟。
波的干涉图样生成器 - 双源波长颜色调节
调节两列波的频率、波长和位置,实时观看水面波干涉形成的明暗条纹图案。
WebSocket在线测试工具 - 连接/发送消息调试
输入WebSocket服务地址,建立连接,发送和接收消息,方便调试实时通信应用。
SVG路径补间变形动画生成器
在两个不同形状的SVG路径间自动生成流畅的过渡变形动画SMIL代码。
WebSocket 消息构建器 - 编辑并发送文本/二进制帧
连接到 WebSocket 端点,自定义消息内容(JSON、文本、ArrayBuffer)并发送,查看响应。
JSON Schema生成器 - 从JSON数据推断结构
粘贴JSON示例数据,自动分析并生成对应的JSON Schema,支持类型推断和必填标记。
ResizeObserver演示 - 响应元素尺寸变化
拖拽改变一个div的大小,通过ResizeObserver API实时显示其新的宽度和高度。
代码语言检测工具 - 根据语法特征推断编程语言
粘贴代码片段,基于关键字和语法模式自动推断编程语言,适合未命名文件的快速识别。
代码行数统计工具 - 忽略注释空行
粘贴代码,计算总行数、有效代码行数、注释行数和空行数。
z-index层级可视化 - 拖拽相互遮挡关系
添加多个色块拖拽顺序,直观表现层叠上下文与z-index值。
文字云生成器 - 基于Canvas的词云艺术
输入词汇和权重,生成美观的文字云图片,可自定义配色和螺旋布局。
Webmention发送测试 - 手动Ping引用
输入源页和引用页URL,构造Webmention请求通知被引用页面,演示独立博客协议。
数字滤波器设计器 - 低通/高通/带通
在Canvas上绘制理想频率响应,并应用简单FIR滤波器对合成信号进行滤波,听音效对比。
DOM变动观察器 - 监听节点变化
配置监听目标,实时显示DOM节点的增删改及属性变化,辅助AJAX内容调试。
涂黑诗生成器 - 从报纸文章中选字
粘贴一段文本,涂黑不用单词,保留部分文字组成一首再生诗词。
UD5工具箱