Шаблон макета, который я использую в обзоре своего блога, заключается в создании сетки с некоторыми изменениями: после каждой строки из двух элементов одинакового размера есть один элемент, занимающий всю строку:
Для достижения этой цели нам необходимо:
flex-wrap: wrap
в контейнере (или все items
будет отображаться в одной строке)justify-content: space-between
в контейнере, чтобы создавать пространство только между элементами (а не между краем родительского элемента и элементами).width
значение 49%
(или что-то подобное, равное или меньшее, чем 50%
)width100%
, чтобы он заполнял всю строку. Мы можем выбрать каждый третий элемент в списке с nth-child()
помощью селектора..container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.item {
width: 48%;
height: 100px;
margin-bottom: 2%;
}
.item:nth-child(3n) {
width: 100%;
}
Если вы хотите, чтобы первая строка была во всю ширину, а два следующих элемента имели общую строку, обратите внимание, что вы не можете писать.item:nth-child(1n) { width: 100% }
-это будет нацелено на все элементы. Вы должны нацелиться на первый элемент, выбрав каждый третий элемент, а затем отступив на два пункта: .item:nth-child(3n-2) { width: 100% }
.