-
老项目改响应式应聚焦关键断点、松绑固定宽度、组件级响应、class隔离新行为;优先适配375px/768px/1024px三断点,用max-width/rem/响应式图片/弹性布局/工具类渐进优化。
-
导航栏高度不一致的根本原因是line-height、padding、font-size、box-sizing和vertical-align:baseline共同作用,尤其图文混排时基线对齐拉高容器;强制统一高度最稳定方案是父容器设height+display:flex+align-items:center。
-
Map的set/get操作比对象快,因其底层为稳定O(1)哈希表,避免原型链遍历、隐式类型转换及隐藏类失效;null/undefined/NaN、对象、函数、Symbol作key时必须用Map。
-
frame属性仅控制table外边框的显示边(如void隐藏、hsides显上下),不控制样式/颜色/粗细,与CSSborder无关且不影响内部分割线。
-
margin-inline在Chrome87+、Firefox63+、Safari14.1+原生支持,IE全不识别,旧版Edge(12–18)亦不支持。
-
TypeScript装饰器通过类型安全的元编程增强代码可读性与维护性,支持在类、方法、属性上添加元数据或修改行为。结合泛型与接口,编译时即可检查类型错误,避免误用。框架如Angular、NestJS利用装饰器声明组件、服务和路由,结合reflect-metadata实现依赖注入与自动实例化,减少样板代码。属性、方法、参数装饰器分别用于响应式追踪、逻辑拦截和请求参数标注,实现关注点分离。尽管装饰器尚处Stage3,但在TypeScript中已广泛用于构建高可靠、易维护的大型应用,提升架构清晰度与开发效率。
-
Safari10.1完全不支持nomodule属性,将其视为无意义自定义属性,既不识别也不据此跳过脚本;type="module"标签被直接忽略,而nomodule脚本按普通script执行,导致降级行为不可控,需服务端UA判断或探测脚本兜底。
-
css-vars-ponyfill是IE下支持CSS自定义属性的最可行方案,它在运行时解析并替换var(),支持嵌套、calc()内使用、动态更新及媒体查询作用域,但需注意IE对calc()+var()的兼容限制和动态更新时需显式触发重计算。
-
统一的JavaScript代码规范提升可读性与协作效率。1.命名需语义化:变量函数用camelCase,常量全大写加下划线,类用PascalCase,私有成员以下划线开头。2.格式统一:空格缩进(2或4),花括号行尾,单变量声明,不省略块括号,运算符加空格。3.作用域管理:优先const,次let,禁用var;变量就近声明;避免全局污染;使用解构赋值。4.函数模块设计:函数单一职责,长度≤50行,参数≤3个,用配置对象和默认参数;异步用async/await;模块导出清晰。5.注释文档:JSDoc标注公共
-
align-items动画不平滑是因为它不触发GPU加速,每次变化都引发layout→paint→composite全流程;而transform(如translateY)可硬件加速,提升为独立图层,实现60fps平滑动画。
-
离线HTML内容索引靠人工组织文件结构、正确使用相对路径和浏览器默认行为实现,而非自动生成;双击打开时404本质是file://协议下路径解析错误,如/开头路径指向磁盘根目录。
-
齿轮动画需用steps()实现顿挫感而非linear匀速,选24步匹配常见齿数,配合SVG精确齿形、居中transform-origin和≥1.5s时长,才能呈现真实“咔哒”机械节奏。
-
HTML内联样式需用引号包裹、声明间用分号分隔,避免引号嵌套错误;CSS压缩可能误删单位或分号,导致样式失效,应通过还原对比定位问题,优先用class切换实现响应式。
-
counter-increment必须配合::before或::after的content属性才能显示编号,仅设置counter-increment仅在后台计数;content必须使用counter()或counters()函数,后者需带引号的分隔符字符串,如".",且作用域受counter-reset限制。
-
:nth-child(3n+1)选择DOM序号为1、4、7…的元素,与视觉排列无关;其生效需满足HTML线性、列数固定、无隐藏/插入元素等条件,否则易错位;可靠方案是用Grid定位而非依赖序号。