弹性布局学习笔记

Flexbox 实现了帮助我们脱离 CSS 苦海(例如垂直居中)的目标,但想精通它却需要你应对一些挑战。所以,我们将通过一些动画让你直观地了解 Flexbox 的工作原理,并使用它来构建灵活的布局。

Flexbox 的基本原则是提供一种构建灵活、直观的布局方式。

为了达成这一目标,它让容器决定如何分配容器成员的大小以及空间。这听起来相当不错,那么,让我们来看看实践中它是如何工作的。

在本文中,我们将深入的探讨 Flexbox 中 5 个常见的属性。看看它们能做什么,如何使用它们,以及使用它们构建的布局是什么样的。

属性 #1: Display: Flex

以下是示例页面:
这里写图片描述

我们可以看到,在灰色的容器中,包含了 4 种不同颜色与大小的 div 元素。每个 div 元素都默认display: block,因此,每个四方体都占据了一行的整个宽度。

为了开始使用 Flexbox 布局,你需要将你的容器变为 Flex 容器。这很容易实现:

container {

display: flex;
}
这里写图片描述
你会发现,你的 div 元素已经内行显示了。虽然,看似你只是稍微做了些改变,但是你已经为四方体添加了名为 flex context 的环境。于是,你就可以利用它来定位元素了,这比传统的 CSS 写法要简单了很多。

属性 #2: Flex Direction

Flexbox 容器有两根轴:主轴和垂直的交叉轴,默认情况如下:
这里写图片描述

项目默认是由主轴(从左到右)排列的,这就是你使用display: flex后,四方体以水平线排列的原因。

而Flex-direction决定了主轴的方向。

container {

display: flex;
flex-direction: column;
}
这里写图片描述
这里有一个重要的区别:flex-direction: column所指的是四方体将沿主轴的垂直方向对齐。它使主轴自身从水平到垂直。

而flex-direction还有一些其他的值供你设置,例如:row-reverse与column-reverse.
这里写图片描述

属性 #3: Justify Content

justify-content属性定义了项目在主轴上的对齐方式。

在这里,你将更多的了解主轴与交叉轴的区别。首先,让我们回到flex-direction: row值上。

container {

display: flex;
flex-direction: row;
justify-content: flex-start;
}
justify-content属性包含了 5 个值供你使用:

Flex-start
Flex-end
Center
Space-between
Space-around
这里写图片描述
Space-around与Space-between是两个不容易直观理解的值。Space-between实现了两端对齐,而四方体之间的间隔都是相等的。

Space-around使四方体两侧的间隔相等,这意味着四方体之间的间隔比最外边四方体与边框的间隔要大一倍。(每个四方体贡献了不重叠的等量余量,从而使空间翻倍)

最后一点:请记住 justify-content沿主轴对齐,而flex-direction决定了主轴的方向。它将决定你移动的方向。

属性 #4: Align Items

当你理解了justify-content属性,理解Align Items属性就变得轻而易举了。

justify-content定义了项目在主轴的对齐方式,而align-items属性则定义了项目在交叉轴上是如何对齐的。
这里写图片描述

当我们将flex-direction属性值重置为row后,我们的轴看上去就与上图一致。

那么,让我们深入的了解下Align Items属性有哪些值
1.flex-start
2.flex-end
3.center
4.stretch
5.baseline
stretch指的是如果项目未设置高度或设为auto,项目将占满整个容器。而baseline是指项目将与段落标签的底部对齐。这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值