-
ServiceWorker的install和activate事件分别对应installing→installed和activating→activated状态阶段,install阶段缓存资源并需waitUntil确保完成,activate阶段清理旧缓存且不可在install中执行,状态流转受页面生命周期和skipWaiting()控制。
-
无法用纯HTML实现FedCM联合登录,因其必须由JavaScript在HTTPS安全上下文中调用navigator.credentials.get(),且需用户手势触发、正确配置providers及mediation等参数,并满足浏览器策略与服务端OIDC信任链要求。
-
AnimationWorklet不是CSS动画替代品,而是将动画逻辑移至独立线程运行的底层执行环境,用于实现高帧率、响应式、数据驱动动画;它不操作DOM,仅通过effect.setKeyframes()更新transform/opacity等可合成属性。
-
计算属性实现动态权限按钮组,本质是将权限判断逻辑抽离为响应式、可复用函数;通过Pinia将后端权限数组转为Set或嵌套对象并响应式包裹,再用computed封装按钮配置或语义化布尔状态,结合路由meta与守卫、指令形成完整权限防线。
-
CSS不能选择父元素因浏览器渲染机制限制,反向查找影响性能;可通过:has()伪类、结构调整或JavaScript间接实现。
-
br标签是语义化换行标记,仅用于同一段落内需强制折行的场景,如地址、诗歌、歌词;不可替代段落结构或用作布局工具,否则损害可访问性、SEO及响应式表现。
-
Number.isFinite严格校验数字类型且为有限值,不转换参数;全局isFinite先转数字再判断,存在隐式转换。前者安全明确,后者易引发意外结果。
-
不能直接用transition:height实现面板展开动画,因为height:auto无法参与过渡;应使用max-height过渡或JS动态设置精确高度。
-
font的face属性已被HTML5彻底废弃,现代浏览器忽略其样式解析,必须改用CSSfont-family控制字体;中文字体名需加引号,末尾须保留通用字体族,推荐使用<span>或类选择器替代<font>标签。
-
preload失效主因是未严格匹配as属性、缺失crossorigin、或未将资源接入渲染流程,如字体需as="font"+crossorigin,CSS需onload切换rel,否则仅下载不生效。
-
nth-child基于DOM静态位置索引,不响应动态插入、显隐或重排;JS插入新元素会改变原有元素序号,导致样式错位,需手动重置类名或用MutationObserver监听更新。
-
IIFE是旧项目中零配置的作用域隔离手段,通过函数作用域切断变量声明、事件绑定、定时器等副作用外溢,确保不污染全局命名空间,所有声明默认私有,全局对象需显式传入。
-
BackgroundFetch不能直接下载HTML并渲染,仅Chrome84+/Edge90+支持,需HTTPS、用户手势等条件;它只后台下载资源,不处理DOM或缓存,真正可行方案是配合fetch+CacheAPI预存HTML。
-
旧版Firefox(<60)浮动布局异常主因是严格遵循CSS2.1浮动边界与行框重排规范,而非私有属性缺失;需显式设display:block、box-sizing:border-box,注意vertical-align、sub-pixel误差及clear被stackingcontext或margin合并干扰。
-
使用Flexbox的gap属性替代margin可有效控制按钮组间距,避免首尾多余空白。通过设置display:flex和gap值,如8px,实现按钮间均匀间隔。结合justify-content属性(如flex-start、center、flex-end、space-between)可灵活对齐按钮组,同时保持间距一致。响应式设计中,可用媒体查询调整gap值,适配不同屏幕尺寸。该方法比传统margin更简洁易维护,推荐优先使用。