This can be done by using a bit of JavaScript and CSS-flex.
function reverse(elem){
for (var i=0; i < elem.childNodes.length; i++)
elem.insertBefore(elem.childNodes[i], elem.firstChild);
}
reverse(document.getElementById('wrapper'))
#wrapper {
display: flex;
flex-wrap: wrap-reverse;
align-content: flex-start;
direction: rtl;
}
See it in action:
function reverse(elem){
for (var i=0; i < elem.childNodes.length; i++)
elem.insertBefore(elem.childNodes[i], elem.firstChild);
}
reverse(document.getElementById('wrapper'))
#wrapper {
/* the important bit */
display: flex;
flex-wrap: wrap-reverse;
align-content: flex-start;
direction: rtl;
/* styling */
height: 200px;
width: 200px;
border: 1px solid;
}
#wrapper div {
/* styling */
border: 1px solid;
padding: 20px;
}
<div id="wrapper">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
Improvement
The JavaScript only reverses the order of the elements. If you add the children yourself, than add them in the reverse and omit the JavaScript.
This would look much nicer and like this:
#wrapper {
/* the important bit */
display: flex;
flex-wrap: wrap-reverse;
align-content: flex-start;
direction: rtl;
/* styling */
height: 200px;
width: 200px;
border: 1px solid;
}
#wrapper div {
/* styling */
border: 1px solid;
padding: 20px;
}
<div id="wrapper">
<div>6</div>
<div>5</div>
<div>4</div>
<div>3</div>
<div>2</div>
<div>1</div>
</div>