css - 带有 flexbox 的响应式列

标签 css responsive-design flexbox

我在理解如何让这些列堆叠在这个 flexbox 布局中有点困难,这是我的代码。

<div class="team-row">
    <div class="wrap">
        <div class="team-member">               
            <img src="http://placehold.it/270x270" alt="Tommy Shrader" class="member-pic">
            <h3 class="member-title">Tommy Shrader</h3>
            <div class="member-position">
                <p>President and CEO</p>
            </div>
        </div>
        <div class="team-member">               
            <img src="http://placehold.it/270x270" alt="Zachery Reed" class="member-pic">
            <h3 class="member-title">Zachery Reed</h3>
            <div class="member-position">
                <p>Vice President of Operations</p>
            </div>
        </div>
        <div class="team-member">               
            <img src="http://placehold.it/270x270" alt="Mickie Breeding" class="member-pic">
            <h3 class="member-title">Mickie Breeding</h3>
            <div class="member-position">
                <p>Office Administration</p>
            </div>
        </div>
    </div>
</div>

.team-row {
    width: 100%;
    &:nth-of-type(odd) {
        background-color: #f7f7f8;
    }
    .wrap {
        padding: 80px 0 40px;
        display: flex;
        justify-content: space-between;
        @media (max-width: 667px) {
            flex-direction: column;
            justify-content: space-around;
        }
    }
    .team-member {
        width: 27.06%;
        color: #444;
        text-align: center;
        .member-pic {
            margin-bottom: 20px;
        }
        .member-title {
            font-family: 'Abolition Regular';
            font-size: 24pt;
            font-style: normal;
            font-weight: normal;
            margin: 0;
            margin-bottom: 10px;
        }
        .member-position {
            p {
                margin: 0;
                font-size: 15pt;
            }
        }
    }
}

我还设置了一个 jsbin,这样您就可以看到我已经尝试做的事情。

https://jsbin.com/leyiqojuxa/edit?html,css,output

当屏幕明显达到一定宽度时,我试图让这三个元素相互堆叠并像往常一样在包装器中居中。

我对 flexbox 布局还是有点陌生​​,所以我在搜索和理解如何实现这一点时遇到了麻烦。

最佳答案

如前所述,列已经堆叠,但您表示希望它们居中。

然后你需要使用align-items

    @media (max-width: 667px) {
        flex-direction: column;
        justify-content: space-around;
        align-items:center;
    }
}

JSBin Demo

CSS-Tricks - Guide to Flexbox

关于css - 带有 flexbox 的响应式列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192431/

相关文章:

html - 导航菜单项间距需要解决

css - 当窗口大小改变时使 videoJS 实例缩放

html - 将标题固定到屏幕顶部

html - 垂直放置div?

html - 如何将 block 颜色添加到列表的 CSS 中?

javascript - arc() 函数中的 HTML5 canvas 线条模糊

javascript - 尴尬的线条环绕图像

html - 菜单全宽。列表项共享等宽以获得全宽

html - Twitter "Follow"按钮在 Bootstrap 中导致水平滚动条

css - Angular w/Flexbox app-root 不是 100% 宽