【发布时间】:2017-02-17 17:37:33
【问题描述】:
我有一系列行,每行包含两列,宽度为 50/50。
我希望每隔一行将左列 (.image) 向右交换,但我需要保持 HTML 中的顺序,因为它在较小的屏幕上显示为一列。
CSS:
ul {
list-style: none;
padding-left: 0;
}
.row {
text-align: center;
}
@media (min-width: 768px) {
.image,
.text {
display: inline-block;
width: 50%;
vertical-align: middle;
}
/* alternate */
.row:nth-child(odd) .image {
float: right;
}
/* clearfix */
.row:before,
.row:after {
content: " ";
display: table;
}
.row:after {
clear: both;
}
}
HTML:
<ul>
<li class="row">
<div class="image">
<img src="http://placehold.it/350x150">
</div><div class="text">
<p>Lorem ipsum</p>
</div>
</li>
<li class="row">
<div class="image">
<img src="http://placehold.it/350x150">
</div><div class="text">
<p>Lorem ipsum</p>
</div>
</li>
<li class="row">
<div class="image">
<img src="http://placehold.it/350x150">
</div><div class="text">
<p>Lorem ipsum</p>
</div>
</li>
</ul>
我知道我可以用 flexbox 做到这一点,但我不能在这个项目中使用它。并且使用float: left 不允许我垂直对齐元素。我还有哪些其他选择?
注意:我将display: inline-block 用于这些列,因为它们的高度各不相同,我希望它们彼此垂直对齐。
编辑:我已经made a CodePen 使用如上所示的浮动示例。
【问题讨论】:
-
请显示您的完整代码(包括 CSS)
-
我已经用 CSS 和 CodePen 更新了它,谢谢。