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

Bootstrap+SCSS导航链接激活时动画下划线消失问题求助

解决Bootstrap侧边栏导航Active状态下划线不显示的问题

问题根源在于你定义的%underline-link占位符中,下划线伪元素默认是隐藏且缩放为0的状态,仅在hover时触发显示,但active状态未单独设置该伪元素的显示规则。以下是两种直接有效的解决方式:

方法一:为Active状态单独设置伪元素样式

修改.sidebar .nav-pills .nav-link.active的规则,直接强制其下划线伪元素显示:

.sidebar .nav-pills .nav-link.active,
.sidebar .nav-pills .show > .nav-link {
    @extend %underline-link;
    background: linear-gradient(120deg, darken($sidebar-navitem-background-color, 2) 65%, darken($sidebar-navitem-background-color, 2) 65%);

    // 新增:强制显示下划线
    &:before {
        visibility: visible;
        transform: scaleX(1);
    }
}

方法二:扩展占位符的状态规则

在%underline-link中直接加入对.active类的支持,让所有继承该占位符的元素,只要带有.active类就自动显示下划线:

%underline-link {
    color: $underline-link-color;
    position: relative;
    text-decoration: none;
    transition: all 0.4s ease;

    &:before {
        content: "";
        position: absolute;
        width: 100%;
        height: 3px;
        bottom: 0px;
        left: 0;
        background: $underline-link-color;
        visibility: hidden;
        transform: scaleX(0);
        transform-origin: center left;
        transition: all 0.3s ease 0s;
    }

    &:hover,
    &.active { // 新增active状态支持
        transition: all 0.4s ease;

        &:before {
            visibility: visible;
            transform: scaleX(1);
        }
    }
}

补充说明

  • 第二种方法更简洁,适合后续在其他元素的active状态复用该下划线样式的场景
  • 确认.active类已正确应用到目标导航链接上,避免Bootstrap默认样式覆盖自定义规则

内容的提问来源于stack exchange,提问作者Ivan-Mark Debono

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:05:23