-
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更高效可靠。
-
CSS选择器与动画结合可提升交互体验。通过transition配合后代选择器实现悬停效果,如.card:hover.title改变颜色和位置;使用animation与直接子选择器(>)定义@keyframes滑入动画,结合自定义属性--i设置延迟,实现列表项逐项显示;应避免深层嵌套选择器以提升性能,推荐用transform、opacity和will-change优化渲染,保持结构清晰与控制精准。
-
推荐使用sepia(0.6)contrast(1.1)brightness(0.95)组合实现自然老照片效果,避免sepia(1)过重发黑;透明PNG需配合泛黄背景(如#f8f2e9)防止层次丢失;高保真褪色需Canvas或SVG方案,但性能开销大。
-
如果图片和 H">
图片不显示的四大原因:路径错误(相对HTML文件)、img标签不规范(未自闭合或缺alt)、CSS隐藏(如overflow:hidden或vertical-align问题)、格式兼容性差(如WebP不支持)。
-
推荐使用overflow-wrap:break-word解决长单词溢出,它优先保持单词完整,仅在必要时断行;而word-break:break-all会无差别切割,影响可读性。