-
Chrome和Firefox支持但Safari不支持的选择器包括:has()(Safari15.4+才支持)、:is()/:where()的复杂嵌套(如:is(.a,.b):hover在Safari16.4前被忽略),以及部分伪类组合和属性选择器。
-
preload="none"并非完全不加载,而是延迟加载——仅当video已插入DOM、src已设且未调load()、用户未触发播放时才真正省流量,适合非首屏或低点击率视频。
-
闭包私有状态导致每个实例独占作用域对象,内存开销大且GC困难;类私有字段(#field)共享隐藏类结构,内存更紧凑、回收更高效。
-
箭头函数是JavaScript中语法简洁且无this/arguments/super/new.target绑定的函数,适合简短回调;但不可用作构造函数、对象方法或需动态this的场景。
-
select标签是语义化表单控件,用于创建可交互下拉列表;appearance:none需配合-webkit/-moz前缀且须重置background、border等才生效,各浏览器对尺寸、箭头、可访问性处理差异显著。
-
生产环境暗黑模式需CSS变量+JS控制+Less变量三者结合:Less编译双主题CSS,JS管理切换与持久化,组件样式统一使用var(--xxx)。
-
使用CSSGrid结合auto-fit、minmax()和gap可实现响应式卡片墙。1.auto-fit根据容器宽度自动填充列,每列最小250px并均分空间;2.gap统一设置16px间距,避免margin导致的布局问题;3.卡片结构统一,便于对齐与缩放;4.可选媒体查询在小屏下调整为minmax(150px,1fr)和12px间距,提升移动端体验。
-
标签云需用<span>配合CSS动态缩放字号实现,禁用硬编码,应基于数据权重线性或对数归一化后映射为em单位,并用flex布局替代float,加max-width和user-select防护。
-
ServiceWorker无法实现真正的版本镜像,仅能通过语义化缓存名、精准URL匹配及install/activate分阶段控制模拟;缓存名须含可维护版本标识(如static-prod-v2.3.1),install阶段只写新缓存,activate阶段再清理旧缓存,并确保预缓存URL与页面请求URL完全一致。
-
:focus触发动画需设明确初始width、transition和避免overflow隐藏;失效常因选择器未命中、box-sizing非border-box、父容器溢出裁剪或浏览器样式覆盖。
-
WebAuthnAPI能替代密码登录,但需用户预先注册密钥;其核心是通过navigator.credentials.create()和get()跳过密码输入,私钥永不出设备,依赖challenge、rp.id、user.id(Uint8Array)、authenticatorAttachment等参数严格校验,服务端须验证clientDataJSON.origin、challenge未重放、rpIdHash及UP标志位。
-
最基础可靠的获取HTML页面方式是直接用浏览器打开HTML文件或通过本地服务器访问。file://协议适合静态页但禁用fetch等特性;Python内置服务器可模拟真实环境;curl/fetch适用于远程获取但受同源和JS渲染限制;关键在确保路径正确与脚本执行。
-
iOSCSS重叠闪烁源于WebKit复合层决策保守:重叠元素未触发硬件加速时被分到同层致绘制冲突;translateZ(0)强制建独立合成层隔离区域,但仅绕过判断而非修复逻辑,且有内存与兼容性风险。
-
应删除依赖视觉或位置的class,改用语义化命名;主布局用grid和flex替代旧式定位;启用CSSModules等作用域控制方案;容器用max-width、字体用rem+clamp实现弹性响应。
-
Node.js的EventEmitter默认是同步执行的,事件监听器在emit调用时立即按注册顺序执行,而非进入事件循环等待;因此顶层代码(如console.log)会在所有监听器执行完毕后才运行。