Flexbox:单列到堆叠多列
Flexbox: Single Column to Stacked Multi-Column
我经常遇到这个布局问题:
小屏幕 - 项目堆叠在一行中,通常是图像后跟一些文本,然后是一个较小的子区域用于额外的杂项:
中等屏幕及以上 - 项目重新排列为 2 列,左侧为图像和其他内容,右侧为文本:
我觉得我应该可以用 flexbox 做到这一点,但我不知道怎么做。我知道我可以使用以下方式在列中排列项目:
.container {
display: flex;
flex-flow: column wrap;
}
.one,
.two,
.three {
width: 50%;
}
.one {
order: 1;
}
.two {
order: 3;
}
.three {
order: 2;
}
但问题是似乎没有办法在不设置固定高度的情况下将项目分成 2 列,这显然不能很好地响应响应。
有没有办法强制列在某些点断开?
你可以这样做。通过将宽度设置为移动尺寸的 100%。他们各自占线。
.container {
width: 75%;
margin: 0 auto;
}
.box1, .box2, .box3 {
width: 50%;
}
.box1 {
background-color: blue;
float:left;
}
.box2 {
background-color: green;
float: right;
}
.box3 {
background-color: purple;
float: left;
}
@media screen and (max-width: 800px) {
.box2 {
float: left;
}
.box1,.box2,.box3 {
width: 100%;
}
}
我经常遇到这个布局问题:
小屏幕 - 项目堆叠在一行中,通常是图像后跟一些文本,然后是一个较小的子区域用于额外的杂项:
中等屏幕及以上 - 项目重新排列为 2 列,左侧为图像和其他内容,右侧为文本:
我觉得我应该可以用 flexbox 做到这一点,但我不知道怎么做。我知道我可以使用以下方式在列中排列项目:
.container {
display: flex;
flex-flow: column wrap;
}
.one,
.two,
.three {
width: 50%;
}
.one {
order: 1;
}
.two {
order: 3;
}
.three {
order: 2;
}
但问题是似乎没有办法在不设置固定高度的情况下将项目分成 2 列,这显然不能很好地响应响应。
有没有办法强制列在某些点断开?
你可以这样做。通过将宽度设置为移动尺寸的 100%。他们各自占线。
.container {
width: 75%;
margin: 0 auto;
}
.box1, .box2, .box3 {
width: 50%;
}
.box1 {
background-color: blue;
float:left;
}
.box2 {
background-color: green;
float: right;
}
.box3 {
background-color: purple;
float: left;
}
@media screen and (max-width: 800px) {
.box2 {
float: left;
}
.box1,.box2,.box3 {
width: 100%;
}
}