Вы можете воспользоваться свойством order
, которое поставляется вместе с Flexbox / Grid :
ul {
display: flex; /* displays flex-items (children) inline */
flex-direction: column; /* stacks them vertically */
}
ul > li:nth-child(2) {
order: 1;
}
ul > li:last-child { /* or "> .last-child" */
border: 1px solid;
}
<ul>
<li>First child</li>
<li>Second child</li>
<li class="last-child">Last child but not displayed last!</li>
</ul>
По умолчанию для свойства order
установлено значение 0
, поэтому, присваивая ему значение 1
Я размещаю это после всех остальных;поэтому здесь я нацеливаюсь только на «второго ребенка» , чтобы сделать код максимально коротким / чистым / оптимальным ;Я также мог бы нацелиться на :last-child
, задав ему значение 1
, но тогда мне также нужно было бы нацелиться на " second child ", задав ему значение 2
для достижениятот же результат, что и сейчас, но нам не нужно использовать свойство order
дважды, так как достаточно одного раза, в данном случае ...