简体   繁体   English

Angular2材质精简版固定标头不起作用

[英]Angular2 material lite fixed header not working

I am trying to use a material lite fixed header in my angular cli project, header is rendered with all the links but is not fixed. 我正在尝试在我的angular cli项目中使用材质固定的固定标头,该标头使用所有链接进行渲染,但不是固定的。

My app.html: 我的app.html:

<app-home></app-home>

My home.html: 我的home.html:

<app-header></app-header>
<app-services></app-services>
<app-about-us></app-about-us>
<app-contact></app-contact>

My header.html: 我的header.html:

<div class="demo-layout-transparent mdl-layout mdl-js-layout mdl-layout--fixed-header">
    <header class="mdl-layout__header mdl-layout__header--transparent">
        <div class="mdl-layout__header-row">
            <!-- Title -->
            <span class="mdl-layout-title">Vision backlog</span>
            <!-- Add spacer, to align navigation to the right -->
            <div class="mdl-layout-spacer"></div>
            <!-- Navigation -->
            <nav class="mdl-navigation">
                <a scrollTo class="mdl-navigation__link" href="#services">Services</a>
                <a scrollTo class="mdl-navigation__link" href="#about">About us</a>
                <a scrollTo class="mdl-navigation__link" href="#contact">Contact</a>
            </nav>
        </div>
    </header>
    <div class="mdl-layout__drawer">
        <span class="mdl-layout-title">Title</span>
        <nav class="mdl-navigation">
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
        </nav>
    </div>
    <main class="mdl-layout__content">

    </main>
</div>

And it's css: 这是CSS:

.demo-layout-transparent {
    height: 100vh;
    display: block;
    background: url('../assets/images/transparent.JPG');
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
.demo-layout-transparent .mdl-layout__header,
.demo-layout-transparent .mdl-layout__drawer-button {
  /* This background is dark, so we set text to white. Use 87% black instead if
  your background is light. */
  color: white;
}

Am I missing something or something wrong? 我错过了什么还是错了?

As per the mdl documentation , you can use the below code to implement fixed headers. 根据mdl文档,您可以使用以下代码实现固定的标头。

    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
    <header class="mdl-layout__header">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
      <!-- Add spacer, to align navigation to the right -->
      <div class="mdl-layout-spacer"></div>
      <!-- Navigation. We hide it in small screens. -->
      <nav class="mdl-navigation mdl-layout--large-screen-only">
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div class="page-content">
    <!-- Your content goes here -->

    </div>
  </main>
</div>

Mdl docs:- https://getmdl.io/components/index.html#layout-section MDL文件: - https://getmdl.io/components/index.html#layout-section

Hope this helps.. 希望这可以帮助..

I think the problem is that the fixed-header class does not do what you would expect it to, or at least what i expected it to, which is add position:fixed to the header element or something like that. 我认为问题在于,固定标头类没有实现您期望的功能,或者至少没有达到我的期望,即将position:fixed添加到标头元素或类似的东西。 But instead, it just tells the header to be always visible, in large and small screens. 但是,相反,它只是告诉标题在大屏幕和小屏幕中始终可见。 Without that class it would only be visible on large screens. 没有该类,它将仅在大屏幕上可见。

I had to add this classes in order to fix it like a bootstrap navbar: 我必须添加此类,以便像引导导航栏一样对其进行修复:

header.mdl-layout__header, .mdl-layout__drawer, .mdl-layout__obfuscator.is-
visible {
  position: fixed;
}

I used the fixed header with drawer so what i need to fix is the header itself and the drawer. 我将固定标头与抽屉一起使用,因此需要固定的是标头本身和抽屉。

I also added a padding-top to the main element after the header which contains your application content, same as bootstrap navbar. 我还在包含您的应用程序内容的标头之后的main元素上添加了padding-top,与bootstrap navbar一样。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM