-
闭包通过作用域隔离实现变量真正不可变:内部变量无法被外部访问或修改,仅暴露经校验的变更方法。如订单状态机中,state和流转规则封装在闭包内,仅提供getState()和带校验的transition(),杜绝直接操作。
-
@import会阻塞后续CSS和JS执行,因其强制同步加载、暂停解析并串行请求,导致白屏延长、JS卡顿;应全部替换为<link>标签实现并行下载与异步解析。
-
必须用fetch或XMLHttpRequest发起请求并调用response.json()才能获取JSON响应;需阻止表单默认提交、设置Content-Type:application/json,并确保后端返回合法JSON。
-
flex容器中justify-content仅作用于主轴,align-items作用于交叉轴;主轴方向由flex-direction决定,默认row时主轴为水平,故justify-content:center仅水平居中,需配合align-items:center实现完全居中。
-
伪元素必须设置content属性才能渲染,常见错误是遗漏;需注意display、vertical-align、定位、可访问性及字体继承问题。
-
打字机效果需用@keyframes动画width至具体值(如12ch),禁用auto/fit-content;光标用border-right闪烁,避免::after;混排文本宜按字符数设时长或steps();ch单位不兼容旧版Safari需@supports降级为em。
-
mix-blend-mode在移动端性能差,因其需与背后所有内容实时混合,强制全区域重绘;搭配transform会切断像素通路,导致CPU软合成、掉帧加剧;应减少混合范围、用isolation隔离、优先采用color/fallback等零开销方案。
-
inset是CSS定位复合属性,仅对position为absolute、fixed或sticky的元素生效;语法类似margin,支持1–4个值映射top/right/bottom/left,需配合定位上下文使用且不兼容旧版Safari。
-
使用百分比宽度和box-sizing:border-box可实现浮动元素自适应布局。1.设置float:left和width:50%使元素并排;2.添加box-sizing:border-box确保padding和border不超出宽度;3.父容器应用clearfix防止高度塌陷。此方法兼容旧项目,配合清除浮动能稳定实现响应式多列布局。
-
Next.js中启用ISR需在getStaticProps中返回revalidate选项,如revalidate:60,仅对导出该函数的React页面生效,且须部署于支持边缘运行时的环境(如Vercel),本地开发不触发。
-
能,但效果受限——因原生<select>由操作系统绘制,box-shadow常被系统控件遮盖或忽略;可靠方案是用带阴影的包裹容器配合appearance:none自定义样式。
-
浏览器只渲染第一段是因为多个linear-gradient()并列写入background会层叠覆盖而非合并;正确做法是用$stops...参数展开语法在单个函数内动态生成color-stop序列。
-
HTML本身没有函数概念,离线运行取决于JavaScript执行环境与资源加载;onclick等是声明式绑定,真正执行靠JS;ServiceWorker是关键载体,但需HTTPS注册且有缓存策略要求。
-
原生CSS嵌套是纯CSS语法特性,需写在<style>或.css文件中,依赖Chrome116+/Firefox117+/Safari17.4+;失效主因是浏览器版本低、未用&或@nest显式标记、父选择器无效。
-
因为float使元素脱离文档流,父容器无法感知其高度而塌陷为0,导致背景消失、边框断裂、后续元素上移;清除浮动(如::after{clear:both})只是补丁,而flex容器天然触发BFC,自动包裹子项、正确撑高。