У меня есть макет, состоящий из одного упорядоченного списка, содержащего кучу элементов.
Все элементы имеют одинаковую ширину и высоту, кроме первого элемента, который в 3 раза шире и в 2 раза выше. Это выглядит так:
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 (измените размер области просмотра, чтобы увидеть эффект)
В настоящее время я использую float и встроенные блоки для создания макета, но я хотел бы использовать flexbox из-за некоторых дополнительных функций, которые предлагает flexbox.
Я сделал пару попыток, но безуспешно -
Попытка 1 – Codepen
ol {
/* ... */
display: flex;
flex-wrap: wrap;
}
Попытка №2 — Codepen
Используйте float перед списком, чтобы выделить место для первого большого элемента списка.
Затем установите абсолютное отображение для первого элемента списка.
В обеих попытках красные прямоугольники в первой строке растягиваются, чтобы заполнить высоту первого элемента.
Это возможно?
(Если нет, то меня бы заинтересовал обходной путь CSS-сетки)