使用Polymer应用程序网格布局

时间:2016-08-19 12:04:34

标签: layout polymer media-queries polymer-1.0 grid-layout

Polymer中的app-grid Element(辅助类)允许创建响应式网格布局。给定的Polymer Example创建一个布局,其中三个列表项水平放置在彼此旁边。

要在较小的屏幕上响应性地将网格从3列更改为1,必须声明断点。该文档讨论了在@media规则中定义自定义属性。 (上面的链接)

我无法通过媒体规则进行更改。 我在Polymer中找到了关于@media规则的类似问题,但答案总是指出与铁媒体查询一起使用。既然Polymer文档提到了@media,我相信必须有办法实现它。

我尝试过这样使用它但无法让它工作:

  <style include="app-grid-style">
   :host {
      --app-grid-columns: 3;
      --app-grid-item-height: 200px;
      --app-grid-gutter: 20px;
   }
   @media (max-width: 600px) {
      :host {
         --app-grid-columns: 1;
      }
   }
  </style>

1 个答案:

答案 0 :(得分:3)

在调整窗口大小时,查看demos他们总是调用this.updateStyles,以确保正确应用所有自定义属性。

不幸的是,文档中缺少此信息......

  attached: function() {
    this._updateGridStyles = this._updateGridStyles || function() {
      this.updateStyles();
    }.bind(this);
    window.addEventListener('resize', this._updateGridStyles);
  },

  detached: function() {
    window.removeEventListener('resize', this._updateGridStyles);
  }

如果您在主文档中的元素之外使用app-grid,则必须改为调用Polymer.updateStyles()