【发布时间】:2015-11-17 04:11:18
【问题描述】:
当屏幕尺寸小于 480 像素时,我需要重新排序 div。
我不想使用position: absolute,因为绿色区域的高度可能会因文本数量而异。
我需要小屏幕顺序为红色、绿色、红色、绿色、红色、绿色(每个红色都在直接绿色的顶部,宽度为 100%)。
有什么想法吗?非常感谢
*, html, body {
margin: 0;
padding: 0;
}
.container {
width: 100%;
display: inline-block;
box-sizing: border-box;
}
.full_half {
display: inline-block;
width: 50%;
background-color: green;
float: left;
min-height: 100px;
}
.pic {
background-color: red;
height: 100px;
}
.text {
box-sizing: border-box;
padding: 20px 120px;
}
@media screen and (max-width: 480px) {
.full_half {
width: 100%;
}
.text{
padding: 0 0 !important;
}
}
<div class="container">
<div class="full_half pic"></div>
<div class="full_half text">test</div>
</div>
<div class="container">
<div class="full_half text">test</div>
<div class="full_half pic"></div>
</div>
<div class="container">
<div class="full_half pic"></div>
<div class="full_half text">
dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf<br />
dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf<br />
dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf<br />
</div>
</div>
已解决:
我终于设法通过将 flexbox 应用于容器来更改顺序(仅当宽度小于 480 像素时)。
css 更改:
@media screen and (max-width: 480px) {
.container {
flex-direction: column;
}
.pic {
order: 1;
}
.text{
order: 2;
}
}
【问题讨论】:
标签: html css responsive-design flexbox