HTML中插入真正空格应优先用 实体或CSS控制,避免堆砌空格;菜单缩进须用嵌套ul+padding实现语义化与响应式,禁用 模拟层级。
网页中连续的普通空格会被浏览器自动合并成一个,所以直接敲空格键没用。要显示多个可测量、不被压缩的空白,得用 HTML 实体或 CSS 控制。
是最常用的非断行空格,每个 渲染为一个固定宽度的空格,不会被折叠,适合菜单项前后的对齐留白 (半个汉字宽)、 (一个汉字宽)在中文排版中更可控,但兼容性略低,老版本 IE 可能渲染异常 拼凑缩进——语义不清、维护困难,也容易在响应式下错位很多人用 模拟子菜单缩进,结果在不同字体或 Zoom 下错位,或者屏幕阅读器无法识别层级关系。
+ CSS padding-left,既语义清晰又响应友好 而不是堆砌 ,因为前者宽度稳定且与中文字体匹配 标签内开头连写 3 个 做缩进——视觉上像缩进了,但焦点进入时会先“跳过”这些空格,影响键盘导航体验侧边栏菜单的排布本质是视觉层级 +

text-indent 控制首行缩进,适用于标题类菜单项padding-inline-start(或旧写法 padding-left)控制整个菜单项的左偏移,支持 rem/em 单位,缩放自适应display: flex + gap,图标和文字间距由 CSS 管理,不依赖空格占位真正难的不是打几个空格,而是判断这个空格该由 HTML 承担语义,还是交给 CSS 控制表现。菜单缩进一旦混用 和 padding,后续改字体、换主题时就会出现像素级错位,还很难定位原因。