每天一个前端知识(31):CSS3-Flexbox学习

frontend

Posted by Tiny on June 25, 2017

我们将只专注那些核心要素,暂时抛弃那些你现在不应该注意的东西直到你掌握基础。

1. 容器和项目

弹性布局中我们将在本教程的这个示例中看到,无论是容器还是项目都是 div。

横向布局

要创建一个弹性布局,只需要给容器设置以下的 CSS 属性。

.container {
    display: flex;
    display: -webkit-flex;
    display: -webkit-box;
}

布局的结果如下:

垂直布局

在上述布局中,主轴线是水平的,交叉轴是垂直的。轴的概念对理解弹性布局有帮助。

当你添加 flex-direction: column 时可以交换这两个轴。

.container {
    display: flex;
    flex-direction: column;
}

则现在主轴线是垂直的,而交叉轴是水平的,导致项目被垂直堆叠。

2. Justify content and Align items

为了使列表再次水平,我们能将 flex-direction 从 column 设置为 row 因为这将再次翻转弹性布局的轴。轴的概念必须理解是因为 justify-content 和 align-items 这两个属性控制如何使项目主轴线和交叉轴分别定位。让我们通过使用 justify-content 来沿主轴居中所有的项目:

.container {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

使用 align-items 沿着交叉轴进行调整。

.container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

以下是你可以为 justify-content 和 align-items 设置的其他值:

justify-content:

flex-start (default) flex-end center space-between space-around align-items:

flex-start (default) flex-end center baseline stretch

我建议你将 justify-content 和 align-items 属性与可为 column 和 row 值的 flex-direction 结合使用。这将让你更好的理解这个概念。

3. The items

我们将了解的最后一件事就是 items 本身,以及如何将具体的样式单独设置。

比方说,我们想调整第一个 item 的位置,我们通过给它一个与 align-items 接收同样的值的 align-self CSS 属性来实现:

.item1 {
align-self: flex-end;
}

将形成以下的布局:

参考资料:https://lee134134134.github.io/page/9/