必须全局唯一,嵌套在 内会导致语义失效,并引发可访问性问题 这类组合:表格单元格内样式计算本就繁重,再嵌套 div 极易触发同步 Layout
Flex/Grid 怎么用才不翻车?一维二维职责要分清
使用现代布局替代浮动/inline-block 确实能扁平化结构,但混用反而放大性能代价——例如在 flex 容器内再套 grid 做微调,通常表明模块切分存在问题。
- flex 适合一维线性排列:
、表单控件组、按钮工具栏
- grid 适合二维布局:
整体网格、仪表盘卡片流;必须显式声明 grid-template-rows,否则隐式 auto 轨道可能多次触发重排
- 三列等宽布局,旧写法需 3 层嵌套,新写法:
A B C
loading="lazy" 为什么会让 LCP 变差?首屏图片必须绕开它
loading="lazy" 是浏览器对非首屏资源的加载策略,若加在首屏图片上,等于主动降低其加载优先级,直接拖累 LCP。
- 所有出现在视口内的
![]()
必须移除 loading 属性,或显式设为 loading="eager"
- 带
loading="lazy" 的图片必须同时声明 width 和 height,否则会引发 CLS(累积布局偏移)
也支持 loading="lazy",但仅当内容不在首屏关键路径时才启用
实际上,真正困难的并非“怎么写”,而是“怎么验证”。每次修改结构后,需要进入 DevTools 查看真实 DOM depth、节点数、Layout 触发次数——仅盯着源码缩进是否美观,无法解决性能问题。
