我有一个布局,由一个包含一堆项目的有序列表组成。
所有项目都具有一致的宽度和高度 - 除了第一个项目 - 宽 (3x) 和高 (2x)。它看起来像这样:
ol {
padding:0;
margin:0;
min-width: 488px;
}
li {
list-style: none;
width: 150px;
padding-bottom: 16.66%;
border: 5px solid tomato;
display: inline-block;
}
li:first-child {
float:left;
width: 478px;
border-color: green;
padding-bottom: 34.25%;
margin: 0 4px 4px 0;
}
<ol>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
Codepen Demo(调整视口大小以查看效果)
目前,我使用浮动和内联块来实现布局,但我想使用 flexbox,因为 flexbox 提供了一些额外的功能。
我做了几次尝试,但没有成功 -
尝试 #1 - Codepen
ol {
/* ... */
display: flex;
flex-wrap: wrap;
}
尝试 #2 - Codepen
在列表前使用浮点数以确保第一个大列表项的空间
然后在第一个列表项上设置绝对显示。
在这两次尝试中,第一行中的红色框都会拉伸以填充第一项的高度。
这可能吗?
(如果没有,那么我会对 CSS 网格解决方法感兴趣)