代码之家  ›  专栏  ›  技术社区  ›  Weilies

如何在Angular Nebulal主题中创建响应式TopNav?

  •  0
  • Weilies  · 技术社区  · 4 年前

    我想使用Angular Nebulal主题创建一个响应式顶部导航。 我使用创建了顶部菜单

    <nb-layout-header fixed>
        <nb-actions class="left">
            <nb-action class="profile" [nbContextMenu]="items" 
      nbContextMenuPlacement="bottom">Profile</nb-action>
    
            <nb-action [routerLink]="['/login']">Login</nb-action>
            <nb-action>menu 1</nb-action>
            <nb-action>menu 2</nb-action>
            <nb-action>secret menu</nb-action>
            <nb-action *ngIf="local.retrieve('loggedIn')">secret menu2</nb-action>
        </nb-actions>
    </nb-layout-header>
    

    但它在PC和移动设备上的布局是一样的。当用户在下面的类似移动设备的参考中浏览时,我如何使顶部导航栏成为“汉堡包”菜单

    https://www.w3schools.com/howto/howto_js_topnav_responsive.asp

    0 回复  |  直到 4 年前
        1
  •  2
  •   Eliseo    4 年前

    这是css和mediaQuery的问题。有几种方法,一种简单的方法,你定义了两种.css按钮响应和菜单响应

    .button-responsive
    {
        display:none
    }
    
    @media (max-width: 573px)
    {
        .button-responsive
        {
            display:inline-block
        }
        .menu-responsive
        {
            display:none
        }
    }
    

    然后你可以有一个nb操作和一个nbContextMenu

      <nb-layout-header fixed>
        <!--add class button-responsive to the button-->
        <button nbButton ghost class="button-responsive" [nbContextMenu]="allitems">
          <nb-icon icon="menu-outline"></nb-icon>
        </button>
        <!--add class menu-responsive to nb-actions-->
        <nb-actions class="left menu-responsive">
          <nb-action class="profile" [nbContextMenu]="items" nbContextMenuPlacement="bottom">Profile</nb-action>
          <nb-action [routerLink]="['/login']">Login</nb-action>
          <nb-action>menu 1</nb-action>
          <nb-action>menu 2</nb-action>
          <nb-action>secret menu</nb-action>
        </nb-actions>
      </nb-layout-header>
    

    更新 使用固定侧杆的相同技术 为此,在组件的构造函数中

    constructor(public sidebarService: NbSidebarService) {}
    

    我们的.html变成了这样

    <nb-layout>
      <nb-layout-header fixed>
        <nb-icon class="button-responsive" icon="menu-outline" (click)="sidebarService.toggle()"></nb-icon>
        <nb-actions class="left menu-responsive">
          <nb-action class="profile" [nbContextMenu]="items" nbContextMenuPlacement="bottom">Profile</nb-action>
          <nb-action [routerLink]="['/login']">Login</nb-action>
          <nb-action>menu 1</nb-action>
          <nb-action>menu 2</nb-action>
          <nb-action>secret menu</nb-action>
        </nb-actions>
      </nb-layout-header>
      <nb-sidebar #sidebar state="collapsed" class="button-responsive" fixed>
        <nb-menu [items]="items"></nb-menu>
      </nb-sidebar>
    
    推荐文章