这个问题已经有了一个很好的答案,但是本着探索所有可能性的精神,这是另一种对dom元素进行重新排序的技术,同时又允许它们占用空间,这与绝对定位方法不同。
此方法适用于所有现代浏览器和IE9 +(基本上是任何支持display:table的浏览器),但是它的缺点是最多只能使用3个同级对象。
<div class='container'>
<div class='div1'>1</div>
<div class='div2'>2</div>
<div class='div3'>3</div>
</div>
.container {
display:table;
}
.div1 {
display:table-footer-group;
}
.div2 {
display:table-header-group;
}
.div3 {
display:table-row-group;
}
这会将元素从1,2,3重新排列为2,3,1。基本上,将显示设置为table-header-group的所有内容都将位于顶部,而table-footer-group则位于底部。自然,table-row-group将元素放在中间。
这种方法快速且具有良好的支持,并且比flexbox方法所需的CSS少得多,因此,例如,如果您仅想交换一些项目用于移动版式,则不要排除此技术。
您可以在Codepen上查看现场演示:http ://codepen.io/thepixelninja/pen/eZVgLx