【问题标题】:Problem with Clarity Design in feature modules功能模块中的清晰设计问题
【发布时间】:2021-04-15 16:17:19
【问题描述】:

我在结合 Clarity Design Framework 构建我的 Angular 应用程序方面有些挣扎。我遵循了入门指南 (https://clarity.design/get-started/developing/angular/),并且元素本身工作正常。当我开始将 html 结构分解为多个组件时,问题就出现了。

我开始构建 app.component.html,如下所示:

<div class="main-container">
    <header class="header-1">
        <div class="branding">
          <a href="/" class="nav-link">
            <clr-icon shape="shield-check"></clr-icon>
            <span class="title">test</span>
          </a>
        </div>
    </header>    
    <div class="content-container">
        <div class="content-area">
            <router-outlet></router-outlet>
        </div>
        <app-sidenav></app-sidenav>
    </div>
</div>

标题部分工作正常,但侧导航(来自 Clarity 的 clr-vertical-nav)看起来不像 supposed 到:how it actually look's

sidenav 组件位于功能模块中,如我在根模块和功能模块中导入 BrowserAnimationsModule 和 ClarityModule 的文档中所述。

sidenav-component.html:

<clr-vertical-nav>
  <a clrVerticalNavLink routerLink="./charmander" routerLinkActive="active">Charmander</a>
  <a clrVerticalNavLink routerLink="./jigglypuff" routerLinkActive="active">Jigglypuff</a>
  <a clrVerticalNavLink routerLink="./pikachu" routerLinkActive="active">Pikachu</a>
  <a clrVerticalNavLink routerLink="./raichu" routerLinkActive="active">Raichu</a>
  <a clrVerticalNavLink routerLink="./snorlax" routerLinkActive="active">Snorlax</a>
  <a clrVerticalNavLink routerLink="./credit" routerLinkActive="active">Credit</a>
</clr-vertical-nav>

但是,当我将 sidenav-component.html 的内容直接放在 app.component.html 中时,一切都按预期进行。谁能解释我为什么或如何解决这个问题?

编辑stackblitz上的简单项目

提前致谢, 克里斯

【问题讨论】:

    标签: angular vmware-clarity


    【解决方案1】:

    您可以尝试将app-sidenav 元素移动到.content-area div 上方吗? 例如:

    <div class="main-container">
        <header class="header-1">
            <div class="branding">
              <a href="/" class="nav-link">
                <clr-icon shape="shield-check"></clr-icon>
                <span class="title">test</span>
              </a>
            </div>
        </header>    
        <div class="content-container">
            <app-sidenav></app-sidenav>
            <div class="content-area">
                <router-outlet></router-outlet>
            </div>
        </div>
    </div>
    

    如果这不起作用,请启动一个简单的示例,在stackblitz 中使用其中一个启动器重现该问题,这样我就可以查看一个有效的应用程序。

    ---------编辑---------

    确实有效。将 app-sidenav 移到内容区域上方,在应用端用 css 处理 clr-vertical-nav 的高度。

    这里是我选择写的css,ymmv:

    clr-vertical-nav {
      height: 100%;
    }
    

    Here 是一个分叉的堆栈闪电战,展示了一个工作侧导航。

    【讨论】:

    • 您的建议无效 - 它将侧导航向左对齐,但仍不是全高并且元素不可点击。请参阅stackblitz 上的项目
    • 我更新了我的答案。简而言之,它确实有效,但您必须在应用程序端处理垂直导航组件的高度。在编写时,设计选择不让它垂直扩展以填充其容器。现在改变这将是一个突破性的改变,所以我们必须忍受它并管理应用程序端的高度。
    • 感谢您的回答。请不要误会我的意思,我很感激它,它有帮助,我只是好奇并想学习,这就是我再次询问的原因 - 当您在 app.component.html 中看到我的示例并取消注释时,导航是放置正确且高度正确?那么,当我将相同的代码移到不同的模块中时,为什么会有所不同呢?
    猜你喜欢
    • 2011-07-26
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多