-
iOSSafari中overscroll-behavior:contain失效主因是容器未真正进入可滚动状态,需同时满足:有明确宽高、无transform/will-change干扰、滚动上下文未被阻断。
-
inset-inline-start是逻辑定位属性,值取决于direction和writing-mode:LTR下等价left,RTL下等价right;仅对absolute/fixed元素生效,不可与left/right混用,需配合inset-block-start等使用,依赖父元素direction,非body或系统设置。
-
使用CSSGrid布局时,gap用于设置行列间距,padding控制容器内边距,margin处理特殊外边距;推荐用gap管理项目间距,padding营造容器留白,谨慎使用margin避免冲突,三者协同提升布局清晰度与响应式效果。
-
Blob本身不提升性能,但能绕过传统文件处理瓶颈:避免全量加载内存、跳过服务器中转、支持流式操作;应分块读取、及时释放引用、优先用URL.createObjectURL预览,构造File需继承Blob,fetch后用blob.stream()实现无压力解析。
-
当用户取消勾选“保存颜色”复选框时,页面会意外立即变色——根本原因在于removeEventListener无法移除匿名函数,导致旧监听器未被清除,新监听器又被重复添加,引发一次冗余执行。
-
Symbol.iterator用于同步遍历,需返回具有next方法的迭代器对象,支持for...of循环;Symbol.asyncIterator用于异步遍历,返回Promise形式的{value,done}结果,支持forawait...of循环。
-
令牌桶限流必须阻塞等待而非立即返回Promise,核心是维护等待队列、原子获取令牌、独立定时补桶(固定增量、全局唯一可清理)、透传原函数Promise状态,并按key隔离桶实例且带TTL清理。
-
overflow属性影响内容溢出时的显示与裁剪,尤其在定位元素中决定子元素是否被截断。其取值visible、hidden、scroll、auto分别控制溢出行为;当祖先元素overflow为hidden时,绝对定位子元素会遭裁剪,常导致下拉菜单或弹窗显示异常;设置overflow为hidden或auto可创建BFC,防止margin折叠并包含浮动;实际开发中应避免根元素设为hidden以防fixed元素被裁剪,优先使用auto以提升体验,并注意组件层级与兼容性问题。
-
直接caches.match(event.request)会出问题,因其不区分请求类型,导致POST、带credentials的登录请求及API响应被错误匹配缓存;应按event.request.destination分流处理:document需兜底,script/style可缓存,json/empty等必须直连网络。
-
Map支持任意类型键(对象、函数、Symbol等),而Object仅支持字符串和Symbol;Map用SameValueZero算法判断键相等,0与-0、NaN与NaN均视为相等,引用类型需同一实例才能匹配。
-
clip()必须先定义路径再调用才生效,否则裁剪区域为空;多次clip取交集,重置需save/restore;drawImage受目标区域裁剪影响;clearRect也受其限制。
-
推荐使用DartSass是因为Node-Sass已停止更新,不支持CSS新语法如calc()中的/、color-mix()、@container等,而DartSass同步CSS标准演进,是唯一能正确解析和兼容现代CSS特性的实现。
-
HTML的time元素不解析毫秒级时间戳,datetime属性仅接受ISO8601格式(如"2024-05-30T00:00:00Z"),需用newDate(timestamp).toISOString()手动转换,否则语义失效、辅助技术无法识别。
-
Reflect.apply本身不提供错误边界,必须手动包裹try/catch;它仅是Function.prototype.apply的反射式替代,不改变异常传播机制,需显式处理同步/异步错误、参数校验及上下文防御。
-
Tecno手机无HTML5私有API,适配关键是解决其老旧Android系统WebView兼容性问题;需检测UA确认内核版本,强制viewport完整声明,降级新CSS/JS特性,并用多真机交叉验证。