-
最可靠的选择器测试方式是在Elements面板用Ctrl+F或Cmd+F直接输入CSS选择器,支持完整语法并高亮匹配元素,显示“XofYmatches”或“Noresults”。
-
预解析是引擎对整个作用域的快速扫描,仅提升var和function声明;懒解析则延迟函数体解析至首次调用,二者协同缩短首屏可交互时间。
-
SEO有效标题和描述必须由服务端在首屏HTML中直出,客户端JS动态修改无效;局部同构刷新要求服务端与客户端对区块语义、数据边界、key及props严格一致,否则导致水合失败、SEO内容丢失。
-
console.log是轻量调试工具,需用标签、分组、对象包裹提升可读性;console.table适合结构化数据对比;console.trace和console.time分别用于追踪调用栈和性能计时;注意日志非原子性,需快照避免引用误读。
-
position:fixed“飘”是因父容器transform创建新包含块、z-index层级不足或Safari移动端兼容问题;应移除无意义transform、设足够z-index、用translateY(-50%)居中且不干扰参照系,并为Safari加-webkit-sticky降级。
-
主题切换不必强制用JavaScript控制:root,但主动切换主题必须依赖JS修改:root自定义属性以触发重绘;纯CSS仅支持有限响应,如系统暗色模式。
-
最简方案是直接给body加background-attachment:fixed,但iOSSafari和部分安卓WebView不支持,且Chrome在body有transform等属性时也会禁用;推荐用body::before伪元素模拟fixed效果,需设position:fixed、z-index:-1、pointer-events:none,并确保background-size:cover和background-position:center。
-
matchMedia是浏览器原生API,用于监听媒体查询变化,支持响应视口尺寸、暗色模式、减少动画等环境变化,需注意实例复用、事件清理及SSR兼容。
-
前端缓存策略需平衡性能与一致性,核心包括:1.浏览器HTTP缓存(Cache-Control、ETag)和ServiceWorker实现网络资源缓存;2.内存缓存如函数记忆化与单例对象减少重复计算;3.本地存储(localStorage、IndexedDB)持久化数据并管理过期;4.结合时间戳、版本号或WebSocket实现实时更新机制,确保数据有效性。
-
HTML不是编程语言而是语义化结构说明书,标签描述内容含义而非样式,应避免滥用无语义的<div>/<span>,注意属性写法规范(如width="200"而非"200px",布尔属性无需赋值)。
-
不加async或defer的script标签会阻塞HTML解析:浏览器遇到时立即暂停解析,下载并执行脚本后才继续,导致白屏和DOM访问失败;内联与外链脚本均如此,且按文档顺序串行执行。
-
用position:absolute+top:0+left:0+width/height:100%使图片叠于父容器左上角,父容器需设position:relative和明确高度,配合z-index与opacity切换,预加载图片并用object-fit:cover防变形。
-
overflow-y:auto在Flex容器中失效,根本原因是父容器无明确高度约束导致无法触发溢出;必须设置height/max-height,并为滚动区域添加min-height:0及-webkit-overflow-scrolling:touch(iOS兼容)。
-
表单验证必须同时使用addEventListener('input')和submit事件:input实现实时反馈,submit作为防绕过兜底;正则需严格使用^和$锚定边界,并配合trim()处理空格,所有前端校验均不可替代服务端验证。
-
sanitize.css是现代项目必备基础样式库,它通过:where()保持低特异性、保障表单一致性、默认支持响应式与无障碍,比手动重置或使用reset.css更高效可靠。