Если вы проверяете свою DOM, оказывается, что дополнительные 3 элемента добавляются в тег <body>
браузером.оператор :first-child
будет работать, только если целевой элемент является <article>
И первым дочерним элементом его родителя.Это не так, поскольку <first-child>
на самом деле является тегом <meta>
.Вот почему ваша логика не работает, когда вы удаляете div.
Чтобы это работало без <div>
, вы можете обновить стили CSSпримерно так:
article:nth-child(4) {
background-color: red;
}
article:nth-child(5) {
background-color: yellow;
}
article:nth-child(6) {
background-color: blue;
}
article:nth-child(7) {
background-color: green;
}
Я бы лично порекомендовал использовать обтекание <div>
, поскольку оно обеспечивает организацию вашего HTML и соответствующего CSS.Кроме того, порядок добавления дополнительных тегов, добавляемых браузером, может различаться в разных браузерах, поэтому вышеописанная настройка не гарантируется для всех браузеров.Использование <div>
гарантирует это, так как ваши теги <article>
всегда будут единственными дочерними элементами разделительного блока.