【问题标题】:Material Design Lite + Polymer not working together - It doesn't display anythingMaterial Design Lite + Polymer 无法协同工作 - 不显示任何内容
【发布时间】:2015-07-27 08:08:24
【问题描述】:

我正在尝试集成我使用 Material Design Lite 创建的一些 Polymer 组件。但是,它们只是不渲染任何东西,就好像材料设计无法与 Polymer 组件一起使用。

这些是我创建 HTML+Material Design 侧边菜单的步骤:

Plain Material Design Lite 侧边菜单

<div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Menu</span>
    <nav class="mdl-navigation">
        <a href="" class="mdl-navigation__link">Link 1</a>
        <a href="" class="mdl-navigation__link">Link 2</a>
        <a href="" class="mdl-navigation__link">Link 3</a>
        <a href="" class="mdl-navigation__link">Link 4</a>
    </nav>
</div>

现在,作为测试,我创建了一个带有一些标记的 nav-menu.html Polymer 元素:

<dom-module id="nav-menu">

  <template>
    <p>I'm a DOM element. This is my local DOM!</p>
  </template>

  <script>
    Polymer({
      is: "nav-menu"
    });
  </script>

</dom-module>

然后,它被包含在菜单之前并呈现OK:

HTML

<nav-menu/>
<div class="mdl-layout__drawer">
...

渲染代码

<nav-menu>
    <p class="style-scope nav-menu">I'm a DOM element. This is my local DOM!</p>
</nav-menu>
<div class="mdl-layout__drawer">

现在,我将 nav-menu.html 组件更改为包含完整菜单:

<dom-module id="nav-menu">

  <template>
    <div class="mdl-layout__drawer">
      <span class="mdl-layout-title">Express</span>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href=""> Link 1</a>
        <a class="mdl-navigation__link" href=""> Link 2</a>
        <a class="mdl-navigation__link" href=""> Link 3</a>
        <a class="mdl-navigation__link" href=""> Link 4</a>
      </nav>
    </div>
  </template>

  <script>
    Polymer({
      is: "nav-menu"
    });
  </script>

</dom-module>

并将其包含在主页中:

<nav-menu/>

这是呈现的 HTML 代码(在 chrome 开发者工具检查中看到):

  <nav-menu>
    <div class="mdl-layout__drawer style-scope nav-menu">
      <span class="mdl-layout-title style-scope nav-menu">Express</span>
      <nav class="mdl-navigation style-scope nav-menu">
        <a class="mdl-navigation__link style-scope nav-menu" href=""> Link 1</a>
        <a class="mdl-navigation__link style-scope nav-menu" href=""> Link 2</a>
        <a class="mdl-navigation__link style-scope nav-menu" href=""> Link 3</a>
        <a class="mdl-navigation__link style-scope nav-menu" href=""> Link 4</a>
    </nav></div>
  </nav-menu>

显然没问题,但是页面没有显示任何内容,它只是空白。

更新:问题似乎是显示菜单的媒体查询样式不适用于新元素:

@media screen and (min-width: 1025px)
.mdl-layout--fixed-drawer>.mdl-layout__drawer {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
}

由于聚合物元素嵌套在 &lt;nav-menu&gt; 标记中,因此不会应用 CSS 样式。有什么建议吗?

【问题讨论】:

    标签: html css polymer web-component material-design-lite


    【解决方案1】:

    解决了它从 Polymer 组件中删除嵌套的 &lt;div class="mdl-layout__drawer style-scope nav-menu"&gt; 并直接在 HTML 中应用样式:

    nav-menu.html

    <dom-module id="nav-menu">
    
      <template>
        <span class="mdl-layout-title">Menu</span>
        <nav class="mdl-navigation">
          <a class="mdl-navigation__link" href=""> Link 1</a>
          <a class="mdl-navigation__link" href=""> Link 2</a>
          <a class="mdl-navigation__link" href=""> Link 3</a>
          <a class="mdl-navigation__link" href=""> Link 4</a>
        </nav>
      </template>
    
      <script>
        Polymer({
          is: "nav-menu"
        });
      </script>
    
    </dom-module>
    

    HTML

    <nav-menu class="mdl-layout__drawer"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      相关资源
      最近更新 更多