css - Flexbox:单列到堆叠多列

标签 css responsive-design flexbox

我经常遇到这种布局问题:

小屏幕 - 元素堆叠在一行中,通常是图像后跟一些文本,然后是一个较小的子区域用于额外的杂项:

one column

中等屏幕及以上 - 元素重新排列为 2 列,左侧为图像和其他内容,右侧为文本:

two columns

我觉得我应该可以用 flexbox 做到这一点,但我不知道怎么做。我知道我可以使用以下方法在列中排列元素:

.container {
    display: flex;
    flex-flow: column wrap;
}
.one,
.two,
.three {
    width: 50%;
}
.one {
    order: 1;
}
.two {
    order: 3;
}
.three {
    order: 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%;
    }

}

JSFIDDLE

关于css - Flexbox:单列到堆叠多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29996973/

相关文章:

css - 如何在流动的网站中固定菜单?

jquery - 如何在没有水平滚动的情况下在 Bootstrap 中适应视频 100 宽度 100 高度

javascript - 如何放置三个具有响应属性的 div?

float 图像旁边的 CSS 最小标题 <h1, h2, h3> 宽度

responsive-design - 当可移植设备具有更高的像素密度时,如何处理响应式设计宽度?

html - 如何 flex : 1 affects height of flex items?

jquery div背景图片循环

html - 具有移动 View 的 CSS 动态布局与 2 列布局中的普通 View

html - 使用 CSS flexbox 创建响应式表单

html - 仅CSS的砌体布局