css - 3 列布局 1 列 2 行等间距

标签 css

我试图在 CSS 中实现这种响应式流体布局,因此每列具有相同的高度和宽度,中间列有 2 行并且列和行之间的空间应该相同,并且在调整大小时空间应该保持相等距离。每个 block 是一个图像。

看图片:

enter image description here

我已经尝试在每列中添加百分比,因此列之间的填充为 1%,第 2 列顶行的底部边距约为 8.3%,它似乎不太准确也不可靠,是否有更好的 ie8+向上。谢谢!

最佳答案

这应该可以做到。评论中的解释。

.container {
    width:100%;
    height:500px;
    -webkit-columns:auto 3;
    -moz-columns:auto 3;
    columns:auto 3;
    -webkit-column-gap:10px;
    -moz-column-gap:10px;
    column-gap:10px;
    box-shadow: 0 0 0 1px red; /* just to show container dimensions */
}
.container>div {
    background-color:grey;
    width:100%;
    height:100%;
    box-sizing:border-box; /* in case you plan on using padding */
}
.container>div:not(:nth-child(3n+1)) { /* second and third div from every set of 4 divs */
    height:calc(50% - 5px); /* minus half of the space between the two smaller boxes */
}
.container>div:nth-child(4n+2) { /* second div from every set of 4 divs, if there's only going to be one set, you can use :nth-child(2) instead */
    margin-bottom:10px; /* this should be the same as your column gap */
}
<div class="container">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>


编辑:

这是一个更简单的解决方案,它具有更好的浏览器支持:

table{
    width:100%;
    height:300px;
    border-spacing: 10px;
    border-collapse: separate;
}

td{
    background-color:grey;
}
<table>
    <tr>
        <td rowspan="2"></td>
        <td></td>
        <td rowspan="2"></td>
    </tr>
    <tr>
        <td></td>
    </tr>
</table>

关于css - 3 列布局 1 列 2 行等间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30732185/

相关文章:

javascript - (HTML + Javascript)获取文本输入以显示在 Canvas 上,并获取单选按钮输入以填充背景

javascript - 用于 IP 地址验证的 Javascript 正则表达式

javascript - 如何获取页面中使用的所有外部或内部CSS?

jquery - 调整字体大小以适应 div(在一行中)

css - 带有图像和颜色的 html 背景

css - 将多个 less 文件编译成一个文件无法识别 variables.less 中的变量

html - CSS 插入和输出框阴影

HTMl、CSS - 向我的 div 添加黑色覆盖

html - 响应式 Youtube

html - BS3 carousel + animate.min.css 在 Firefox 中不能完美运行