You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除链接悬停变换时的多余空白?

解决链接悬停下划线包含多余空白的问题

你的问题根源在于HTML里<a>标签内部的文字带有换行和缩进,这些空白字符会被浏览器解析为额外空格,导致<a>元素的实际宽度比文字本身更宽。而你设置的伪元素::before使用width: 100%,是基于<a>的整体宽度计算,所以悬停时下划线会覆盖这些多余空白。

下面提供两种解决方法:

方案1:清理HTML中的空白

把<a>标签的内容和标签写在同一行,消除内部的换行与缩进:

<nav>
    <span class="navigation">
        <span class="navigation_links">
            <a class="menu" href="menu.html">Menu</a>
            <a class="location" href="location.html">Location</a>
            <a class="order" href="order.html">Order</a>
        </span>
        <!--Place Image Here-->
    </span>
</nav>

方案2:用CSS限制元素宽度

如果不想修改HTML结构,可以给<a>标签添加属性,让它的宽度贴合文字内容:

.navigation_links a {
    text-decoration: none;
    position: relative;
    color: #000000;
    margin: 20px;
    /* 新增属性 */
    display: inline-block;
    width: fit-content;
}

width: fit-content会让元素宽度自适应文字长度,现代浏览器都支持;如果需要兼容更旧的浏览器,可以改用white-space: nowrap配合text-align: left,同样能避免空白影响宽度计算。

修改后,伪元素的下划线就只会覆盖文字本身的宽度,不会再出现多余的延伸部分。

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:24:19