包装它们之间有间隙的div

kev*_*670 8 html css

当浏览器窗口变小时,我想要包装到下一行的div.我也希望在div之间放置保证金,以便它们之间存在差距.我遇到的问题是,如果浏览器设置为特定大小,则中心div上的边距会导致div错误地换行.在一定的大小,你有一个div下面的2个div.请参阅下面的我的截图作为示例和这个小提琴:http://jsfiddle.net/uhh2jwe2/(更改窗口的宽度)

这确实需要是动态的,因为它将是一个框架解决方案,用于布置不同大小的div.父div将与示例类似.任何帮助都会很棒

在此输入图像描述

#outer {
  width: 90%;
  height: 90%;
  margin: 5%;
  overflow: auto;
  background-color: red;
}

.inner1 {
  float: left;
  width: 150px;
  height: 150px;
  margin-right: 20px;
  background-color: blue;
}

.inner2 {
  float: left;
  width: 150px;
  height: 150px;
  margin-right: 20px;
  background-color: blue;
}

.inner3 {
  float: left;
  width: 150px;
  height: 150px;
  background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)
<div id="outer">
  <div class="inner1">1</div>
  <div class="inner2">2</div>
  <div class="inner3">3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

kev*_*670 0

我认为我已经找到了最简单的解决方案来解决我想要做的事情,而无需使用媒体查询。我只是将右边距添加到包括最后一个字段在内的所有字段,而不是将其添加到除最后一个字段之外的每个字段。

然后,我将所有字段包装在另一个 div 中,并添加负边距(与间隙大小相同),以便字段在碰到容器侧面时会包装。这是解决方案的小提琴: http: //jsfiddle.net/rahg1ky3/

#outer {
    width: 90%;
    height: 90%;
    margin: 5%;
    overflow: auto;
    background-color: red;
}
#inner {
    margin-right: -20px;
} 
.cont {
    float: left;
    width: 150px;
    height: 150px;
    margin-right: 20px;
    background-color: blue;
}

<div id="outer">
  <div id = "inner">
    <div class="cont">1</div>
    <div class="cont">2</div>
    <div class="cont">3</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)