Если ваша цель - поместить вертикальные линии в контейнере для разделения соседних дочерних элементов (элементов столбцов), вы можете рассмотреть стилизацию контейнера следующим образом:
.container > *:not(:first-child) {
border-left: solid gray 2px;
}
Это добавляет левуюограничить все дочерние элементы, начиная со 2-го дочернего элемента.Другими словами, вы получаете вертикальные границы между соседними дочерними элементами.
>
является дочерним селектором.Он соответствует любому потомку элемента (ов), указанных слева. *
- универсальный селектор.Он соответствует элементу любого типа. :not(:first-child)
означает, что это не первый дочерний элемент его родителя.
Поддержка браузера: > *: first-child и : not ()
Я думаю, что это лучше, чем простое правило .child-except-first {border-left: ...}
, потому что более разумно, чтобы вертикальные линии исходили из правил контейнера, а не из разныхправила дочерних элементов.
Будет ли это лучше, чем использование временного элемента вертикального правила (путем стилизации горизонтального правила и т. д.), будет зависеть от вашего варианта использования, но, по крайней мере, это альтернатива.