流体柱布局,它们之间有固定的像素边距?

时间:2012-07-18 10:50:30

标签: css margin fluid-layout

我不想使用JS,只有css解决方案

我希望包含div内部的列能够同样适合内部,即每个列都是容器宽度的三分之一。我在这里实现了这一点 - http://jsfiddle.net/yFxZX/

然而,除此之外,我还希望列之间有10px margin,第一列接吻容器的左边缘,右列接吻容器的右边缘。看下面的图片是为了粗略模拟。

当浏览器重新调整大小或父容器更改宽度时,我希望列相应地调整大小以填充空间,但它们之间的边距保持固定为10px。

这可以在没有JS的情况下完成吗?

enter image description here

2 个答案:

答案 0 :(得分:7)

使用负边距:

.container {
  background: green;
  overflow: auto;
}

.inner {
  padding-left: 20px;
}

.box {
  width: 33.3%;
  background: red;
  float: left;
  margin-right: 10px;
}

.first {
  margin-left: -20px;
}

.last {
  width: 33.4%;
  margin-right: 0;
  /*float:right;*/
}

img {
  max-width: 100%;
  height: auto;
  width: auto\9;
  /* ie8 */
}

http://jsfiddle.net/yFxZX/2/

答案 1 :(得分:0)

在Html中:

<div class="container">
    <div class="box">
        <div class="box-content">
            First
        </div>
    </div>
    <div class="box">
        <div class="box-content">
            SECOND
        </div>
    </div>
    <div class="box last">
        <div class="box-content">
            Last
        </div>
    </div>
</div>

在Css中:

.container {
    background: green;
    overflow: auto;
}
.box {
    width: 33.3%;
    float: left; 
}
.box.last {
    width: 33.4%;
}
.box .box-content {
    margin-right: 10px;
    background: red;
}
.box.last .box-content {
    margin-right: 0px;
    background: red;
}

如果你想让你的盒子有相同的高度 在css中添加:

.box .box-content {
    margin-right: 10px;
    background: red;
    margin-bottom: -1000px;
    padding-bottom: 1000px;
}

http://jsfiddle.net/wqwDN/