Flexbox 布局实践教程

阅读时长 5 分钟读完

Flexbox 是弹性盒子布局的简称,是一个旨在提供一种更加高效、优雅、灵活的布局方式的 CSS3 模块。它提供了一种利用弹性元素及弹性容器之间的关系,在不同方向上根据可用空间自动分配空间的方法。在当前许多页面布局中,使用 Flexbox 来进行布局已成为一种流行趋势。本文将着重介绍 Flexbox 布局的各种应用场景及如何实践它。

最基本的 Flexbox 布局

下面是一个基础的 Flexbox 布局,这个例子展示了如何将盒子水平居中:

-- -------------------- ---- -------
--------------- -
  -------- -----
  ---------------- -------
  ------------ -------
-

----- -
  ------ ------
  ------- ------
  ----------------- -------
  ------- -----
-

在上面这个例子中,我们将一个父级容器(.flex-container)设置成了 display: flex,这时候其中的所有子元素会被变成了可弹性伸缩的弹性元素。最后通过 justify-content: center; align-items: center 来实现水平居中。

Flex-direction 属性的使用

flex-direction 属性是控制弹性容器内部的排列方向的,它有四个可选参数:row(默认值),row-reversecolumncolumn-reverse

-- -------------------- ---- -------
--------------- -
  -------- -----
  --------------- ------------
-

----- -
  ------ ------
  ------- ------
  ----------------- -------
  ------- -----
-

在上面这个例子中,我们将弹性容器的排列方向设置为 row-reverse,也就是从右到左排列。

Justify-content 属性的使用

justify-content 属性控制弹性项目在主轴上的对齐方式,它有五个可选参数:flex-start(默认值),flex-endcenterspace-betweenspace-around

-- -------------------- ---- -------
--------------- -
  -------- -----
  ---------------- --------------
-

----- -
  ------ ------
  ------- ------
  ----------------- -------
  ------- -----
-

在上面这个例子中,我们将弹性项目在主轴上的对齐方式设置为 space-between,也就是项目之间平均分配空间。

Align-items 属性的使用

align-items 属性控制弹性项目在交叉轴上的对齐方式,它有五个可选参数:stretch(默认值),flex-startflex-endcenterbaseline

-- -------------------- ---- -------
--------------- -
  -------- -----
  ------------ -----------
-

----- -
  ------ ------
  ------- ------
  ----------------- -------
  ------- -----
-

在上面这个例子中,我们将弹性项目在交叉轴上的对齐方式设置为 flex-start,也就是所有项目都交叉在容器的起始边缘。

综合实践

看完上面的例子后,我们可以通过综合使用这些属性来进一步实践,创建出更为复杂的布局。下面是一个常见的导航栏布局:

-- -------------------- ---- -------
---- -
  -------- -----
  ---------------- -------
-
----- -
  -------- -----
  ---------------- --------------
  ----------- -----
  ------- --
  -------- --
-
---------- -
  ------- - -----
-
---------- - -
  ---------------- -----
-

在上面这个例子中,我们通过设置 .nav 为一个弹性容器,然后将 .menu 设置为每个项之间均匀分布的弹性容器,最后通过 margin 设置每个菜单项之间的间距,从而实现了一个简单的导航栏布局。

总结

Flexbox 布局是一种灵活、高效、优雅的布局方式,其使用也越来越广泛。在实践中我们可以多加尝试,通过运用上面所介绍的属性来实现各类布局,同时也应该注重其兼容性和性能,以避免一些不必要的问题。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a6897948841e989432e8a1

纠错
反馈