Nie wiem, czy o taki efekt Ci chodziło:
ul {
display:flex;
flex-direction: column;
}
li:nth-child(2n){
align-self: flex-end;
}
Możesz też napisać tak, zamiast "2n":
li:nth-child(even){
lub
li:nth-child(odd){
bądź też: li:nth-child(2n+1){
https://www.w3.org/Style/Examples/007/evenodd.en.html
<body style="background:grey">
<ul class="flex-container">
<li class="flex-item">1</li>
<li class="flex-item">2</li>
<li class="flex-item">3</li>
<li class="flex-item">4</li>
<li class="flex-item">5</li>
<li class="flex-item">6</li>
</ul>
</body>
Małą część kodu przepisałem z:
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Edit:
Staraj się korzystać z oficjalnych dokumentacji w tym przypadku z w3.org. A tutaj link do tych selektorów pseudoklas:
https://www.w3.org/TR/2018/CR-selectors-3-20180130/#structural-pseudos