CSS中心div两个div的子

时间:2017-02-09 00:17:58

标签: css

我回到另一个可能很蹩脚的CSS问题。

所以我有一个容器div,其中有两个配对的div,每个都有两个div。我想证明所有四个人之间的空间相等。

我现在所拥有的:

HTML:

<div class="container">
    <div class="pairsWithinContainer">
        <div>
        </div>
        <div>
        </div>
    </div>
    <div class="pairsWithinContainer">
        <div>
        </div>
        <div>
        </div>
    </div>
</div>

的CSS:

.container {
  width: 100%;
  height: 200px;
  background-color: blue;
  padding: 2px;
}

.container > div {
  display: inline-block;
  width: 49.5%;
  height: 200px;
  background-color: yellow; 
}

.pairsWithinContainer > div {
  display: inline-block;
  background-color: green;
  width: 50px;
  height: 100%;
}

JSFiddle:https://jsfiddle.net/tyzdhzt2/9/

我想做什么:http://sketchtoy.com/67874588

了解CSS的人,请帮助。

2 个答案:

答案 0 :(得分:2)

我建议您使用display:flex代替display:inline-block执行此操作。

将容器设置为弹性框会自动将您的内容移动到一行。 flex-direction:row会将此行设为一行,flex-direction:column会使其成为一列。使用justify-content:space-around让容器盒在其所有孩子周围分布均匀的空间。

要在浏览器缩小时让第一行容器包装,请为这些框提供一个min-width属性,并像这样给它们的包装元素flex-wrap:wrap

&#13;
&#13;
.container {
  width: 100%;
  height: auto;
  background-color: blue;
  padding: 2px;
  display:flex;
  justify-content:space-around;
  flex-wrap:wrap;
}

.container > div {
  display: flex;
  justify-content:space-around;
  width: 49.5%;
  height: 200px;
  min-width:400px;
}

.pairsWithinContainer > div {
  background-color: green;
  width: 50px;
  height: 90%;
}
&#13;
<div class="container">
    <div class="pairsWithinContainer">
        <div>
        </div>
        <div>
        </div>
    </div>
    <div class="pairsWithinContainer">
        <div>
        </div>
        <div>
        </div>
    </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这是我根据之前提出的类似问题起草的解决方案,horizontally center div in a div

我已经分了一个解决方案jsfiddle

HTML修订:

我已经重新构建了一些HTML,希望能让它更容易完成:

<div class="container" id="outer">
    <div class="inner yellow" id="inner1">
        <div class="inner green"></div>
    </div>
    <div class="inner yellow" id="inner2">
        <div class="inner green"></div>
    </div>
    <div class="inner yellow" id="inner3">
        <div class="inner green"></div>
    </div>
    <div class="inner yellow" id="inner4">
        <div class="inner green"></div>
    </div>
</div>

CSS修订:

与HTML一样,我对CSS进行了重组,希望能让它更容易理解:

.container {
    width: 100%;
    height: 200px;
    background-color: blue;
    padding: 2px;
    /* Firefox */
    display: -moz-box;
    -moz-box-pack: center;
    -moz-box-align: center;
    box-sizing: -moz-border-box;
    /* Safari and Chrome */
    display: -webkit-box;
    -webkit-box-pack: center;
    -webkit-box-align: center;
    box-sizing: -webkit-border-box;
    /* W3C */
    display: box;
    box-pack: center;
    box-align: center;
    box-sizing: border-box;
    }

.inner {
    width: 50%;
    height: 100%;
    border: none;
    /* Firefox */
    display: -moz-box;
    -moz-box-pack: center;
    -moz-box-align: center;
    box-sizing: -moz-border-box;
    /* Safari and Chrome */
    display: -webkit-box;
    -webkit-box-pack: center;
    -webkit-box-align: center;
    box-sizing: -webkit-border-box;
    /* W3C */
    display: box;
    box-pack: center;
    box-align: center;
    box-sizing: border-box;
}

.yellow {
    width: 25%;
    background-color: yellow;
    }

.green {
    width: 25%;
    background-color: green;
}

以下是有关CSS-Tricks的box-sizing的更多信息