3 Fluid Divs width 2固定边距?

时间:2014-12-09 09:47:14

标签: css margin grid-layout fluid-layout fixed-width

我有以下设置,但是将div的宽度设置为大约30%的值并不是一致的(一旦窗口宽度小于某个数字,第三个div会降到下面..

有没有更好的方法来做到这一点,这样我的div总是保持内联并且越来越小而边距保持固定在它们之间的18px?

CSS:

.parent {
  width: 100%;
  height: 50px;
}  

.child {
  float: left;
  margin-right: 18px;
  border: 2px solid white;
  text-align: center;
  line-height: 50px;
  height: 100%;
  width: ~30%; /* doesn't work */
}  

.child:nth-child(3) {
  margin-right: 0;
}

HTML:

<div class="parent">
  <div class="child">one</div>
  <div class="child">two</div>
  <div class="child">three</div>
</div>

2 个答案:

答案 0 :(得分:2)

如果您正在寻找IE8支持,并且可以更改标记,则可以将块嵌套在33.33%宽度元素内。

对于IE8支持,您需要get rid of the nth-child()声明。为了只有内部空隙,我使用了这里描述的技术:Items grid with inner padding only

<强> DEMO

&#13;
&#13;
body{
    overflow:hidden;
    margin:0;
}
.wrap{
    margin: 0 -9px;
}
.box {
    width:33.33%;
    float:left;
}
.box div {
    background:grey;
    height:150px;
    margin:0 9px;
}
&#13;
<div class="wrap">
    <div class="box">
        <div>one</div>
    </div>
    <div class="box">
        <div>two</div>
    </div>
    <div class="box">
        <div>three</div>
    </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用calc()计算列宽。

.child {width: calc(33.333% - 12px);} /* margins in total have 36px / 3 cols  */
自IE9起支持

Calc