-
纯HTML+CSS可实现静态物流时间轴:用语义化<ol>+<li>+<time>结构,伪元素::before绘制垂直线与圆点,position:relative防止定位偏移,响应式需处理窄屏断行与IE/Safari兼容性。
-
用display:inline或inline-block可使块级元素横排,但inline不支持宽高和上下margin,inline-block有基线对齐缝隙;现代推荐flex布局,父设display:flex即可自动横排,兼容性好且无间隙问题。
-
应使用语义化HTML5标签:一级分类用<sectionid="laptop">包裹并配<h2>,单品用<article>而非<div>或<li>,规格用<dl>结构化;筛选依赖data-category等属性,状态存数组,显隐通过.hidden类控制。
-
navigator.onLine不能判断弱网,必须用fetch探测:超时设1500ms、响应>800ms且连续两次失败才触发降级,通过aria-live安全插入“简化模式已启用”提示,禁用动画并确保文案纯静态。
-
pagehide是移动端唯一可靠的退出埋点入口,需结合event.persisted===false和visibilityState==='hidden'判断真卸载,并用sendBeacon发送数据,同时监听freeze事件防漏报。
-
路由别名(alias)的核心作用是让同一组件响应多个URL路径且地址栏保持不变;配置需配合具体path,支持数组多别名及带参数别名,但path为'/'时alias无效;与redirect本质区别在于alias不改变URL,而redirect会跳转并重写URL。
-
必须显式启用TAILWIND_MODE=watch,否则v3+虽默认启用JIT引擎但热重载失效;需确保content路径全覆盖、构建工具HMR链路完整,并规避Windows路径陷阱。
-
Array(length).fill(value)是初始化固定长度数组的最简正确方式,它先创建稀疏数组再填充真实元素;不调用fill()则map()等方法会跳过空槽,且Array(5)≠[undefined×5]。
-
accesskey几乎无人使用,因其需记忆键位、组合键触发且无提示反馈,导致交互链路断裂;仅内部或高无障碍要求系统在满足单字母、避保留键、显式提示三条件下可保留;更优解是优化语义结构、焦点流与原生键盘行为。
-
使用视口单位、Flexbox和Grid布局实现高度自适应:1.设置vh或dvh单位确保全屏占位;2.Flex容器中主内容区设flex:1占据剩余空间;3.Grid通过grid-template-rows定义auto与fr组合分配行高;4.媒体容器用aspect-ratio或padding-top百分比保持宽高比,根据场景选择合适方案。
-
transition需同时声明opacity和transform并设相同时间,初始/目标状态显式定义,用class切换控制显示隐藏,避免display:none和JS直接改style,监听transitionend事件确保动画完成后再清理状态。
-
background-image默认重复铺满容器,需同时设置background-repeat:no-repeat、background-size:auto或contain、background-position:center才能实现单张原图居中显示。
-
这是CSS外边距合并行为:父子元素间无border/padding时,子元素margin-top会与父元素上边缘合并,导致父容器下移;仅发生在垂直方向块级元素间,合并值取较大者,负值参与计算。
-
应使用history.pushState()接管导航并同步更新URL与视图状态,配合popstate监听及服务端historyApiFallback配置,确保标签页切换不刷新、状态不丢失且直链可用。
-
filter过渡无效因浏览器插值支持差,需显式声明初始/结束值、统一单位、加will-change;hover抖动源于layoutshift,应强制GPU层并固定尺寸;transitionend事件不可靠,建议用setTimeout或requestAnimationFrame轮询;深色模式/print下需媒体查询重置filter;多层filter应拆分元素实现。