【问题标题】:Angular 8 and Material design navbar - show selected itemAngular 8 和 Material Design 导航栏 - 显示所选项目
【发布时间】:2020-02-08 05:41:49
【问题描述】:

我试图弄清楚当我在水平导航栏中单击所选项目时如何显示它。这是我的代码:

    <mat-toolbar color="primary" class="topbar relative">
        <div class="navbar-header">

            <div color="primary">
                <div>
                  <a href="#" mat-button  routerLinkActive="active" routerLink="/dashboard"> Accounts </a>
                  <a href="#" mat-button  routerLinkActive="active" routerLink="/dashboard"> Create Account </a>
                </div>
              </div>
        </div>
    </mat-toolbar>

虽然我对两条路由使用相同的路由器链接,但该链接是真实的。当我单击所选项目时,不会保持突出显示。以下是选择项目前后的外观。

知道如何设置样式以显示活动项目吗?

谢谢

【问题讨论】:

  • 您是否将样式应用于.active? routerLinkActive 只是添加了一个 css 类。
  • 不,我不是。需要吗?我在基于 Bootstrap 4 的项目中使用了类似的技术,它似乎在那里工作。虽然我在吃药。

标签: angular-material angular8


【解决方案1】:

routerActiveLink 指令只是添加了一个 css 类并将所有样式留给您。在您的情况下,您可以设置一个 active 类。

// my.component.scss
.active {
  background: red;
}

请记住,如果您使用@angular/material,您可能应该使用他们的主题对其进行样式设置。你可以阅读更多关于here的信息。

// _my-theme.scss (only do this if you use material themes)
.active {
  background: mat-color($accent);
}

【讨论】:

  • 我添加了这个 .active { background: red; } 到 css 文件中进行测试,现在这两个项目都是红色的。
  • 那是因为这两个项目具有相同的 url:/dashboard。每当您访问 url /dashboard 时,routerLinkActive 都会将 .active 添加到元素中
  • 啊,我明白了。谢谢
猜你喜欢
  • 2017-02-23
  • 2017-12-19
  • 2015-10-13
  • 1970-01-01
  • 2019-01-18
  • 1970-01-01
  • 2020-06-03
  • 2017-04-06
  • 2017-08-13
相关资源
最近更新 更多