根据 cimmanon 的回答以及我随后的评论,我能够结合使用 flexbox、包装和相对定位。
CSS:
ul {
width: 100%;
display: -ms-flexbox;
display: -webkit-flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
list-style: none;
padding: 0;
}
@supports (flex-wrap: wrap) {
ul {
display: flex;
}
}
li {
-webkit-flex: 1 50%;
-ms-flex: 1 50%;
flex: 1 50%;
outline: 1px solid red;
width: 50%;
}
li:nth-child(4n) {
position: relative;
left: -50%;
}
li:nth-child(4n-1) {
position: relative;
left: 50%;
}
HTML:
<ul>
<li>1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </li>
<li>2</li>
<li>3</li>
<li>4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</li>
<li>5</li>
<li>6</li>
<li>7 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</li>
<li>8</li>
</ul>
http://codepen.io/penx/pen/fnrJE