-
根本原因是viewportmeta标签缺失或错误,导致移动端按虚拟视口渲染,媒体查询不触发;需添加<metaname="viewport"content="width=device-width,initial-scale=1.0">并避免固定宽度值。
-
Tailwind通过PostCSS插件按需生成CSS:插件扫描content配置指定的源文件,静态提取硬编码类名,仅生成实际使用的样式规则,实现精准编译与体积优化。
-
WebPushpayload必须使用AES-128-GCM加密,由客户端提供的auth和p256dh派生密钥,浏览器强制要求content-encoding、encryption、crypto-key三头部齐全且格式正确,否则推送失败。
-
CanvasRenderingContext2D实现像素级绘制需四步:适配设备像素比、全量或脏矩形清除、确保资源加载完成、用requestAnimationFrame驱动动画,缺一不可。
-
尾调用优化(TCO)是复用栈帧避免栈溢出的机制,但主流浏览器默认未启用;尾调用指函数末尾直接返回另一函数调用结果,无后续操作。
-
navigator.storage.estimate()是现代浏览器提供的异步API,用于估算当前源的存储已用空间(usage)和配额上限(quota),返回Promise,结果为{usage,quota}对象,二者均为动态估算值,不可精确计算剩余空间。
-
scroll-snap-stop:always仅Safari≥15.4在触控板/触摸屏滑动时真正生效;Chrome/Edge≤120、Firefox全系静默忽略;旧版浏览器直接丢弃该属性,需结合@supports和JS校准实现兼容。
-
ARIA属性必须在HTML原生语义无法表达组件行为或状态时精准补位;如自定义下拉需role="listbox"+aria-expanded+aria-activedescendant,模态框需role="dialog"+aria-modal="true"+aria-labelledby,动态内容区用aria-live="polite",且须JS同步更新状态。
-
JavaScript事件委托是将子元素事件绑定到父元素,利用事件冒泡和event.target识别目标,可减少监听器数量、节省内存、支持动态元素、降低DOM访问开销、简化逻辑维护。
-
button内直接放SVG图标可能触发点击区域异常,因SVG默认pointer-events为auto且vertical-align为baseline,易导致空白区不可点或图标偏移;应设pointer-events:none和vertical-align:middle,并确保无障碍属性完整。
-
结论:别用calc()+float封装三栏布局Mixin——兼容性假象大,维护成本真高,现代项目里纯属倒退。因calc()在旧版Safari等浏览器中存在解析异常,float布局本身已过时,且现代项目应优先采用Flexbox或Grid。
-
Symbol属性不可枚举,需Object.getOwnPropertySymbols()获取;作为原型属性时既隐式又可被继承访问,适合定义唯一协议方法(如serializable),避免命名冲突,支持跨模块共享、自动委托、运行时检测及多协议组合。
-
<p>JavaScript本身不支持注解语法,但可通过JSDoc注释为变量添加类型和说明,如/*@type{string}/constuserName="Alice";,配合工具实现类似功能。</p>
-
grid-auto-flow:column实现的是列优先填充而非单行横排,需配合grid-auto-columns、overflow-x和尺寸约束才能实现可滚动水平列表。
-
clamp()三个参数需验证生效区间:最小值16px在375px屏下对应2.5vw=9.375px<16px,故取16px;最大值24px在960px屏下2.5vw=24px,超此宽度即锁死24px;真正线性缩放仅发生在约640px–960px之间。