-
图片体积大拖慢首屏渲染,需压缩转WebP/AVIF、用srcset响应式、禁用width/height硬编码、首屏图禁用lazy并设fetchpriority="high"、内容图禁用background-image、慎用第三方CDN服务。
-
移动端页面缩成一团、文字小、点击错位,90%因viewport未写或写错;必须在<head>中硬编码<metaname="viewport"content="width=device-width,initial-scale=1.0">,禁用user-scalable=no等限制缩放属性,避免JS动态插入或固定width值。
-
能,但需每个fetch显式传入同一AbortController的signal实例;复用controller可多次abort,新建controller则旧请求不受影响;已abort的signal不可重用,重试须新建控制器。
-
是的,head中默认script会阻塞渲染和后续JS执行;必须加defer或async才可避免,其中defer仅对外链脚本有效且保序执行,async则无序执行、适合无依赖脚本。
-
clamp()是现代CSS实现字体自适应最稳方案,支持Chrome88+、Firefox79+、Safari14.1+,通过min/preferred/max三值约束缩放边界,避免vw单位在极端屏幕下的可读性或溢出问题。
-
Object.defineProperties可批量配置带权限控制的属性描述符,核心是将读写权限、隐藏逻辑封装进get/set,通过统一策略函数canAccess动态控制访问行为,避免硬编码重复判断。
-
HTML注释不会出现在浏览器页面上,但用户可通过查看源代码或开发者工具轻松看到;含敏感信息的注释必须删除,并通过自动化扫描防范泄露风险。
-
应设为具体属性名而非all,如transform、opacity;timing-function优先用cubic-bezier调试;delay失效多因强制布局,需用requestAnimationFrame规避;transitionend监听需避免display切换和伪元素限制。
-
Chrome打印预览中页眉页脚开关在Ctrl+P/Cmd+P打开的打印面板右下角“更多设置”内,需取消勾选“页眉和页脚”复选框;@page仅支持页边距设置,:first伪类不可嵌套样式;position:fixed页眉页脚在PDF中仅首屏渲染;页码必须用class="pageNumber"和"totalPages",否则不生效。
-
animate-spin转不动主因是SVG为inline元素且无宽高,需设inline-block/w-6/h-6、匹配viewBox与尺寸、避免%单位缩放;路径动画须用stroke-dasharray+stroke-dashoffset自定义关键帧,非animate-spin可实现。
-
支付页面需防误操作、保状态、抗重放、可访问:提交时禁用整个表单并设aria-disabled;服务端必须幂等校验;确认页须reset表单、移除监听器、replaceState;成功页订单号应入URLpath并服务端渲染,缓存头设为no-store。
-
纯CSS可实现阶梯式逐项入场动画,需用@keyframes+animation而非transition;SCSS的@for简化延迟计算,但动态列表需JS或CSS变量配合;起始状态须设transform:translateY(20px)opacity:0并配合overflow:hidden确保阶梯感。
-
del标签语义上表示内容已被删除,浏览器默认渲染为删除线;它强调“曾存在但已移除”,需配合datetime属性增强可追溯性,不可与仅表过时的s标签混用。
-
BEM通过命名约定(block__element--modifier)实现样式隔离,不依赖构建工具,避免全局污染;CSSModules依赖哈希类名,在SSR、动态DOM、第三方组件中易失效。
-
使用order属性可改变Flex子元素显示顺序,数值小的优先排列,结合flex-direction可调整主轴方向,常用于响应式布局中不改变DOM结构的情况下调整视觉顺序。