Reordering a list with CSS

Set display: flex and flex-flow: column on the <ul>, and set the list items which need to appear at the top to order: 1 and the others to order: 2.

Set display: table on the <ul> and then display: table-header-group on the list-items to appear at the top, and display: table-row-group on the others. Note: this doesn't work; it seems that you can't intermingle "top" rows and "body" rows in a "table" this way.