html中下划线“_”直接写不会消失,消失主因是css干扰或字体渲染问题;应优先检查text-decoration、line-height、white-space等样式,而非滥用html实体。

HTML 里下划线 _ 为什么直接写会消失?
因为 _ 本身不是 HTML 的特殊字符,它不会被浏览器解析或转义——但它在某些上下文中会被 CSS 或字体渲染“吃掉”,比如出现在 <em></em>、<strong></strong> 或行内代码块中时,如果用了斜体或等宽字体,下划线可能被基线遮挡;更常见的是,你复制粘贴的文本里混入了全角下划线(_)或 Unicode 变体,看着像 _,实际不是。
怎么安全插入一个可见的下划线字符?
绝大多数情况,直接输入英文半角 _ 就行。但如果你发现它“不见了”,优先检查是不是 CSS 干扰:
-
text-decoration: underline开启后,下划线会叠加,视觉上反而模糊——关掉它再试 - 用了
font-family: monospace却没设line-height,导致下划线被截断,加个line-height: 1.3试试 - 在
<pre class="brush:php;toolbar:false;"></pre>或<code>里,确认没被 CSS 重置了white-space,比如white-space: nowrap把换行和空格都压扁了,下划线跟着“缩”没了
哪些 HTML 实体真能用,哪些是自找麻烦?
别碰 _(即 ‾)或 _(就是 _ 的十进制码)——前者是上划线符号,后者跟直接打 _ 完全等价,毫无必要。真正该记的只有两个:
- 需要语义化“空白分隔”时,用
防止单词断行,但它不是下划线 - 要显示“文字下方带横线”的效果(比如填空题),老实用 CSS:
text-decoration: underline,别试图用—或–拼接——它们是破折号,宽度固定,对不齐字母基线
从编辑器到浏览器,哪里最容易丢下划线?
VS Code、Typora 这类编辑器默认开启“连字(ligatures)”,会把 _ 和前后字符合并渲染,看起来像断开或变细;浏览器端更隐蔽的问题是:服务端模板(如 Jinja2、EJS)自动 HTML 转义时,把 _ 当普通字符放过,但如果你手动写了 &_,它反而会原样输出 &_ 这三个字符。
立即学习“前端免费学习笔记(深入)”;
最稳妥的做法:写纯文本就敲 _,要强调格式就用 CSS 控制,别绕路去查实体表——95% 的“下划线不见”问题,根源不在字符本身,而在渲染层的干扰。









