-
background-clip:padding-box未生效是因为缺少可视边框或border-radius;它仅控制背景绘制范围,需同时设置border-radius和非透明边框(如1pxsolidtransparent)才起作用。
-
用text-decoration:none显式覆盖a元素及其伪类(:link、:visited、:hover、:active、:focus),按LVHA顺序声明,避免父容器设置或遗漏状态导致下划线残留。
-
JavaScript的try...catch仅捕获同步执行异常,不处理异步错误、语法错误、资源加载失败及Promise拒绝;需在调用处包裹且await异步操作,catch参数应命名避免覆盖Error,finally中避免return或throw。
-
要实现60FPSDOM状态切换动画,需用transform/opacity替代布局属性,配合will-change动态启用与requestAnimationFrame同步渲染,并通过DevTools验证图层与帧耗时。
-
mix-blend-mode是元素内容与下方堆叠上下文(如父背景、兄弟元素、video等)的混合,生效关键在于结构:需同级定位+下方有可混合内容,且避免isolation、opacity、filter等隐式创建层叠上下文的属性。
-
XMLHttpRequest的timeout必须在open()后、send()前设置,单位毫秒,且需绑定ontimeout事件;超时仅作用于网络传输阶段,responseXML为空时需主动判空,弱网下推荐首载timeout=8000ms。
-
本文介绍如何在Flexbox中实现“标签宽度取max-content与100px的较小值”效果,即:标签内容短时不撑开(避免浪费空间),内容长时至少保持100px宽度并自动截断,同时确保值区域优先收缩。
-
HTML本身不能实时查汇率,必须配合JavaScript调用第三方API实现;需注册获取密钥、处理CORS、校验响应字段、避免错误缓存,并注意移动端兼容性与HTTPS要求。
-
IE9及以下完全不支持animation和@keyframes,连解析都跳过;加-webkit-前缀也无法让老Safari正常运行动画,因其存在关键帧解析bug;Android4.0–4.2对opacity插值不准,需用visibility+transition替代;检测应通过动态插入测试元素并监听animationstart事件,而非依赖UA;降级首选transition+class切换。
-
Proxy中捕获属性读取应优先用Reflect.has(target,prop)判断是否存在,避免用target[prop]===undefined误判或漏查原型链;Reflect.get不会因属性不存在抛错,需主动判断;错误信息应友好,如用constructor.name和拼写提示;Proxy实例可能影响instanceof,需对constructor、Symbol.toStringTag等特殊键单独处理。
-
counter-reset在子元素中不生效,根本原因是它只对后续同级或后代中满足作用域条件的counter-increment生效,且重置动作不继承、不传播、不穿透伪元素边界。
-
PerformanceAPI监测Canvas游戏帧稳定性需捕获关键渲染阶段时间断点,通过mark/measure记录frame/update/render各阶段耗时,结合p95和max帧耗时识别抖动,并关联DrawCall定位瓶颈。
-
原生popover功能需用<divpopover>元素配合popovertarget属性实现,非独立属性;必须满足结构约束、用户交互触发且浏览器支持,Safari完全不支持,需JS检测与降级。
-
根本原因是box-sizing:content-box导致padding和border额外增加宽度;应全局设box-sizing:border-box,图片加max-width:100%;height:auto;,断点依内容临界点选em单位,字体用clamp()动态缩放。
-
localStorage并非真正离线存储,但它是轻量易用的浏览器端持久化方案;写入失败主因有四:无痕模式禁用、超配额(5–10MB)、非字符串值未序列化、iOSSafari低内存自动清理,须用trycatch+JSON处理并降级兜底。