我想创建一个两列布局(仅限CSS,没有javascript)。
有一些要求使这变得复杂:
200px
)详细示例here。
不可
答案 0 :(得分:2)
使用flexbox,您可以在flex-direction
为row
时垂直展开容器。但是,正如您所指出的那样,这会水平放置弹性项目 - 从左到右(在LTR书写模式下)然后返回,就像一台旧打字机一样。
在flex-direction: column
中,项目从上到下排列,容器水平展开。
你想要什么 - 对于从上到下堆叠的列,垂直扩展容器(如Pinterest布局) - 目前无法使用flexbox。
答案 1 :(得分:2)
Flexbox + CSS专栏让你非常接近......
http://codepen.io/simshanith/pen/ZLLvGB?editors=1100
HTML:
<div class="container">
<div class="columns">
<div class="item">1</div>
<!-- etc. -->
</div>
</div>
CSS:
.container {
background: rgba(0,0,0,0.1);
display: flex;
flex-direction: column;
flex-wrap: wrap;
min-height: 200px;
width: 600px;
}
.columns {
column-count: 2;
column-gap: 0;
flex: 1;
}
.item {
display: block;
box-sizing: border-box;
padding: 10px;
border: 1px solid blue;
width: 100%;
-webkit-column-break-inside: avoid;
/* Chrome, Safari, Opera */
page-break-inside: avoid;
/* Firefox */
break-inside: avoid;
/* IE 10+ */
}
但是,第一列未填充到200px。 CSS Columns优化为最短,因此第二列将显示至少2个项目。