-
错位主因是line-height用了带单位的值(如24px)或字体栈不统一,导致缩放时行高与基线不同步;应改用无单位line-height(如1.5)并统一font-family。
-
直接用canvas合并图片会丢失EXIF信息和颜色配置,因为浏览器加载<img>标签时默认解码为无元数据的RGB位图,ICC配置、Orientation标记、GPS数据等全部被丢弃;即使drawImage绘制后调用toDataURL或toBlob,输出仍是无元数据的“裸图”,这是规范行为而非bug。
-
Cycle.js基于函数式响应式编程,将应用视作纯函数,输入为事件流,输出为DOM更新;通过RxJS实现响应式数据流,以流变换取代手动状态管理;主函数main(sources)=>sinks无副作用,逻辑集中;驱动(如DOM、HTTP驱动)处理I/O,形成“源→主函数→汇→驱动→源”的闭环响应循环,提升可预测性与可维护性。
-
Node.js脚本需以#!/usr/bin/envnode开头才能作为命令行工具运行,否则会被shell错误解析;process.argv[2]起为用户参数,需手动解析短选项合并、等号/空格两种写法。
-
gap仅在flex或grid容器上生效,控制直系子元素间间隙;单值设统一间距,双值首为行距、次为列距;不与margin合并,但可叠加;需用padding或margin处理首尾留白。
-
虚拟DOM通过JavaScript对象模拟真实DOM,利用Diff算法比较新旧节点差异,实现最小化更新。其核心是避免频繁操作耗性能的真实DOM,采用同层比较、类型变化重建、key优化列表等策略,将复杂度降至O(n),并通过批量更新提升渲染效率。
-
移动端点击高亮是iOSSafari和部分安卓浏览器默认添加的半透明灰色overlay,由-webkit-tap-highlight-color控制,需禁用以保障自定义交互样式一致性;Tailwindv3.0+需在corePlugins中启用tapHighlightColor开关并重启服务方可使用tap-highlight-transparent工具类。
-
CSSHoudini通过多个API让JavaScript直接操作浏览器渲染引擎,实现更灵活的样式控制。1.CustomPropertiesandValuesAPI支持定义带类型的CSS变量并进行动画;2.TypedOMAPI提供带单位的数值对象,提升性能和安全性;3.CSSParserAPI允许自定义CSS解析规则;4.PaintAPI通过PaintWorklet实现自定义绘制效果,如棋盘格背景;5.AnimationWorkletAPI创建高性能线程级动画;6.LayoutAPI自定义布局算法,如瀑布流
-
通过CSS的:focus伪类和transition实现输入框边框颜色动画,聚焦时边框平滑变色,结合box-shadow与@keyframes可创建脉冲等动态效果,提升表单交互体验。
-
CLS是衡量页面视觉稳定性的指标,非优化工具;高CLS常因img/iframe缺尺寸属性、字体切换导致容器高度变化、动态内容未预留空间所致,需从资源加载、尺寸预设和DOM插入时机三方面系统优化。
-
dash.js需配合正确HTML与配置才能实现DASH自适应播放:MPD须HTTPS提供且响应头含application/dash+xml,移动端需video标签添加muted、playsinline及viewport限制,容器须用aspect-ratio或padding-bottom维持宽高比,video设object-fit:cover防拉伸。
-
纯HTML无法实现倒计时,必须用JavaScript实时计算时间差并更新DOM;正确做法是固定目标时间戳,每次用Date.now()重算差值,避免递减变量,合理清理定时器并注意时区问题。
-
BEM规范与PurgeCSS需形成闭环:BEM提供可预测类名结构,PurgeCSS才能精准删除未用样式;动态拼接类名、第三方组件未显式引用、BEM不规范、未设白名单是常见失效原因。
-
浮动元素不创建层叠上下文,故z-index无效;其z轴顺序由所在层叠上下文决定,需用position+z-index替代float来精确控制遮挡关系。
-
本文介绍如何改造基础Tampermonkey脚本,使其支持同时检测多个关键词:若任一关键词存在则弹窗提示并可扩展通知;若全部缺失则自动刷新页面。