必须用、等语义标签而非堆砌,因其自带隐式ARIA role,使浏览器、读屏软件和搜索引擎能准确识别导航区、核心内容等意图;而在辅助技术中仅为“无意义容器”,导致焦点丢失、SEO降权、无障碍失效。

工作台页面不是“堆完 div 再套 CSS”就能交差的地方。结构错、语义乱、响应断,后面加权限控制、嵌入数据卡片、做无障碍支持,全得返工。
为什么必须用 + 而不是一堆 浏览器和读屏软件靠标签名识别区域意图: 表示这是导航入口区, 是当前视图核心内容,是辅助信息(如快捷操作、通知)的容器。写成 ,等于把导航栏藏进黑盒——键盘 Tab 无法自动跳过它,SEO 无法提取导航权重,后期加微数据(如
role="navigation")也补不回语义损失。
-
只包顶部栏(Logo + 用户头像 + 消息图标),别把侧边菜单塞进去
- 放快捷入口、待办计数、系统状态,别放主功能表单
- 所有按钮(如「新建任务」「刷新看板」)必须是
,禁用 模拟
用 display: grid 划分四区时怎么避免命名冲突
grid-template-areas 看着直观,但一改名字就得同步修所有子元素的 grid-area,容易漏。更稳的做法是线性定义列宽行高,显式分配位置:
- PC 端:
grid-template-columns: 240px 1fr 320px(侧边栏固定、主内容自适应、右侧面板定宽)
- 移动端:
@media (max-width: 768px) 改为 grid-template-rows: auto 1fr auto,再用 grid-row 控制各区块顺序
-
设 grid-row: 1; grid-column: 1 / -1,让它横跨全部列,不用起名
- Safari ≤15.4 不支持
subgrid,如果右侧面板里还要网格排布,降级用 display: flex,别硬撑
里怎么让图标、标题、操作按钮横向对齐又不卡死
很多人用 float 或 inline-block 排卡片内元素,结果空格吃间距、换行错位、小屏溢出。Flex 是唯一靠谱解法:
- 给
设 display: flex; align-items: center; gap: 0.75rem
- 图标用内联
(别引 Font Awesome CDN),设 width: 1.25rem; height: 1.25rem; flex-shrink: 0 防缩
- 标题用
,加 margin: 0;操作按钮用 ,设 margin: 0; padding: 0.25rem 0.75rem
- 别给整个卡片设
white-space: nowrap,否则长任务名会撑破容器
切换「编辑态」时为什么不能删掉 DOM 再重 render
点「编辑」就 innerHTML = "",表面能用,实则埋雷:焦点丢失、Tab 键链断裂、屏幕阅读器播报中断、React/Vue 的 re-render 逻辑被绕过。
真正难的不是让卡片看起来能点,而是让键盘用户、屏幕阅读器用户、自动化测试脚本都一致地感知到“这个字段正在编辑”。语义、焦点流、DOM 稳定性,三者缺一不可。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!