【发布时间】:2018-01-29 17:37:54
【问题描述】:
是否有任何解决方案可以避免浮动并使用 flexbox 并使这种类型的布局像我的表示一样? 我没有任何例子,但这张照片是我需要的。
我会尽量用文字来解释:
- 这个网格从 1025 像素开始,有 2 列,右侧有一个大红色方块。
- 从 1100 像素开始,我需要 3 列和右侧的大红色方块
- 从 1680 像素开始,我将有 4 列和右侧的大红色方块。
- 物品的位置必须和我的图片一样
- 根据纵横比,4 个项目将与其他项目一起下降:5、6、7、8 将与 9、10 等下降。
- 大红色必须始终与前两行高度相同。
- 所有布局都流畅且响应迅速
我可以使用 FLOAT 和一些 JS 来计算前两行的完全相同的高度并使大红色具有相同的高度,但我想尽可能使用 flexbox。
目前为止的代码
.grid {
display: flex;
flex-direction: row;
}
.item {
width: 16%;
margin: 5px;
}
.red-box {
}
<div class="grid">
<div class="red-box">big box</div>
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 6</div>
<div class="item">Item 7</div>
<div class="item">Item 8</div>
<div class="item">Item 9</div>
<div class="item">Item 10</div>
<div class="item">Item 11</div>
<div class="item">Item 12</div>
<div class="item">Item 13</div>
<div class="item">Item 14</div>
<div class="item">Item 15</div>
<div class="item">Item 16</div>
<div class="item">Item 17</div>
<div class="item">Item 18</div>
<div class="item">Item 19</div>
<div class="item">Item 20</div>
</div>
【问题讨论】:
-
不,不一样。这里比较复杂。我想不通
-
首先,我们这里不写代码,所以需要提供你目前想出的代码sn-p,其次,这不能单独使用Flexbox,所以你需要做出妥协,可以是 Flexbox/script、Flexbox/float、Flexbox/absolute、Float/script, .... 或者 CSS Grid 可能是一个解决方案。
-
我可以用 FLOAT 让这件事变得很简单,你说的那么复杂有什么意义呢?
-
我想知道如果我只能用 flex 做这个。没有更多的 javascript。