【发布时间】:2017-12-05 15:43:51
【问题描述】:
我正在尝试制作一个响应式网格,当容器调整大小时它会改变元素的顺序。
如果容器变大,那么第二行的元素只有在有足够空间的情况下才会进入上一行。如果没有足够的空间,元素之间的空间会变大,直到第二行的元素可以放入第一行。
Here is a working example how it's realized without Polymer
但问题是如果我将它嵌入到自定义 Polymer 元素中。两个元素之间的空间不会改变。这个问题有解决办法吗?
这是我的聚合物元素:
<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<dom-module id="test-element">
<template>
<style>
.container {
min-height: 400px;
display: grid;
grid-template-columns: repeat(auto-fill, 60px);
justify-content: space-around;
align-items: center;
align-content: start;
}
.item {
flex: 0 0 auto;
margin: 5px;
width: 50px;
height: 50px;
background-color: green;
}
</style>
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</template>
<script>
class TestElement extends Polymer.Element {
static get is() {
return 'test-element';
}
}
window.customElements.define(TestElement.is, TestElement);
</script>
</dom-module>
【问题讨论】:
-
为什么是 flex:0 0 auto ?当父级显示为网格而不是 flex 时?是否应用了其他样式?比如大小、背景?
-
@G-Cyr 没有应用其他样式。我应该写什么?
-
@G-Cyr 如果我删除此行,那么一切都保持不变
-
我的意思是,是应用了背景和高度/宽度还是只应用了网格?当然,在纯 html/css 方面,您的代码很好。
-
@ValentinGavran 你用的是什么浏览器?我没有看到聚合物和非聚合物版本之间的任何区别。这是 Polymer 版本的 JSFiddle。 jsfiddle.net/stramel/rqbsjjjo
标签: css polymer polymer-2.x