【发布时间】:2014-08-31 23:27:08
【问题描述】:
我要找的结果是左边一大块,右边四个小块,一切都对齐了。
我设法做到了in this fiddle,但我的解决方案有几个问题:
- 就代码而言,它不是很干净
- 它没有响应
HTML:
<div class="wrapper">
<div class="box big">ONE</div>
<div class="med-wrapper">
<div class="row-1">
<div class="box medium">TWO</div>
<div class="box medium">THREE</div>
</div>
<div class="row-2">
<div class="box medium">FOUR</div>
<div class="box medium">FIVE</div>
</div>
</div>
</div>
CSS:
.wrapper {
display: flex;
flex-direction: row;
flex-flow: row wrap;
justify-content: space-around;
height: 200px;
}
/* @media screen and (max-width: 768px) {
flex-direction: column
} */
.box {
background: #09f;
color: white;
padding: 1em;
margin: 5px;
text-align: center;
}
.big {
flex: 5;
}
.medium {
flex: 5;
height: 100px;
}
.med-wrapper {
display: flex;
}
另外,你可能会注意到我将.big 和.medium 上的flex 设置为5,因为我希望大盒子的总宽度和两个中盒子的总宽度相等,但它没有用。
有没有更好的方法来做到这一点?
【问题讨论】:
-
有什么理由不使用像Bootstrap 3 这样的内置这些框架?
-
感谢您不使用 Bootstrap。
-
用 Bootstrap 做到这一点是a lot more complicated,至少在我看来。另外,我不是很喜欢 Bootstrap,感觉对它没有太多的控制权。
-
无论如何,like this?假设您希望行成为行。但是,包装不太好用。你必须设置一些最小值。
-
总是可以用更少的标记来完成。例如,我想到的是一个完全扁平的结构,每个
id都有绝对定位。不过,这可能不适合您的情况,因此请选择代表您的内容的标记,然后添加最少数量的包装器以使其正常工作。在这种精确布局的情况下,在不了解/限制内容的情况下,这很可能是最低限度的。