Ver*_*rix 5 html javascript css flexbox
这是我开始的地方:http://jsfiddle.net/Vercingetorix333/7b2L25a5/2/
如您所见,我在容器两端的间距(弹性尺寸:10)远大于内容之间的间距(弹性尺寸:2.5).在用户减小html窗口大小的那一刻,元素最终会换行到第二行(按预期).
然而,我想要做的是设置第一个窗口调整断点/响应因子的大小,这样当内容确实移动到第二行(可能@media....在css中使用?)时,它会同时使用两个最右边的内容div.
然后我希望容器中的每一行看起来像这样:
大缓冲区 - 内容 - 小缓冲区 - 内容 - 大缓冲区
我可以纯粹用css做这个吗?或者我需要一些JavaScript?
编辑:从小提琴添加我的代码(为了后人的缘故).
HTML
<div class="outer_container">
<div class="outer_buffer"></div>
<div class="content">Some Content</div>
<div class="inner_buffer"></div>
<div class="content">Some Content</div>
<div class="inner_buffer"></div>
<div class="content">Some Content</div>
<div class="inner_buffer"></div>
<div class="content">Some Content</div>
<div class="outer_buffer"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.outer_container{
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.outer_buffer{
flex-grow: 10;
}
.inner_buffer{
flex-grow: 2.5;
}
.content{
width: 50px;
border: solid 1px red;
}
Run Code Online (Sandbox Code Playgroud)
编辑:以前这里是我的示例解决方案,基于对项目计数及其行为的限制的错误假设。该解决方案的 jsfiddle 示例是http://jsfiddle.net/7b2L25a5/32/,对于 JS 版本 - http://jsfiddle.net/7b2L25a5/38/
可以通过添加一个额外的包装器(而不是几个“缓冲区”div)并根据适合一行的项目数更改内部包装器的flex-basis和值来实现所需的行为,因此项目之间的空间以常数拉伸flex-grow与外部“缓冲区”的比例(使用外部容器的伪元素):
body { margin: 10px 0; }
.outer_container {
display: flex;
flex-wrap: nowrap;
justify-content: stretch;
}
.outer_container::before,
.outer_container::after {
content: '';
flex: 4 0 0;
}
.middle_container {
display: flex;
/* if there are 2 items on each line,
we need to stretch 1 space */
flex: 1 0 104px;
flex-wrap: wrap;
justify-content: space-between;
}
.content{
width: 50px;
border: solid 1px red;
}
@media screen and (min-width: 260px) {
/* if there are 4 items on each line,
we need to stretch 3 spaces */
.middle_container { flex: 3 0 208px; }
}Run Code Online (Sandbox Code Playgroud)
<div class="outer_container">
<div class="middle_container">
<div class="content">Some Content</div>
<div class="content">Some Content</div>
<div class="content">Some Content</div>
<div class="content">Some Content</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |