CSS Flexbox 之基本概念、属性

阅读时长 7 分钟读完

Flexbox 是 CSS 中一种用于布局的新特性,它可以非常简单地实现弹性布局,使得网页设计更加灵活、自适应。在本文中,我们将会详细介绍 Flexbox 的一些基本概念和属性,介绍如何使用 Flexbox 来实现弹性布局。

弹性布局基本概念

弹性布局是一种由 CSS3 引入的新型布局方式,它通过定义元素间的弹性关系,使得多个元素可以平铺在一个容器中,以适应各种屏幕尺寸和不同设备上的展示效果。

在弹性布局中,有三个基本概念要知道:

  1. 容器:包含要进行弹性布局的所有子元素。
  2. 项目:容器中的每个子元素,也称为 flex item。
  3. 轴线:容器内的主轴和交叉轴,其中主轴是弹性容器本身的“宽” 或 “高”,而交叉轴则垂直于主轴。

如上图所示,一个容器可以通过横向或纵向的主轴来排列它所包含的子元素。我们可以利用弹性布局来控制子元素的排列方式,同时可以在交叉轴上调整它们的对齐方式等。

Flexbox 的基本属性

使用 Flexbox 进行弹性布局,需要掌握以下属性:

  1. display: flex;
  1. flex-direction: row | row-reverse | column | column-reverse;
  1. justify-content: flex-start | flex-end | center | space-between | space-around;
  1. align-items: flex-start | flex-end | center | baseline | stretch;
  1. align-content: flex-start | flex-end | center | space-between | space-around | stretch;
  1. flex-wrap: nowrap | wrap | wrap-reverse;
  1. flex-flow: flex-direction | flex-wrap;
  1. order: <integer>;
  1. flex-grow: <number>;
  1. flex-shrink: <number>;
  1. flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
  1. align-self: auto | flex-start | flex-end | center | baseline | stretch;

示例代码

首先,我们需要定义一个弹性容器:

这段代码定义了一个弹性容器,容器内的子元素将按每行居中,并且在需要的情况下进行换行。接下来,我们将添加一些项目,并使用父容器控制它们的布局:

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

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

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

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

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

这段代码定义了五个子元素,并设置了它们的排列顺序、放大缩小比例和尺寸基础值。其中,.box4 的 order 值最小,故最先显示,.box3 设置为容器右侧,.box2.box5 的宽度相同,.box1.box5 的宽度比其他项目要宽两倍。

接下来,为这些子元素添加一些样式:

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

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

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

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

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

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

这段代码为子元素的宽度、高度、间距以及背景颜色进行了定义。值得注意的是,这里我们使用了 flex: none;,即所有的子元素都不会放大和缩小,并且它们的尺寸基础值都为它们的原始尺寸。

通过上述代码,我们得到了以下效果:

总结

在本文中,我们详细介绍了 CSS Flexbox 的一些基本概念和属性。弹性布局是一个非常实用和常见的 CSS 布局方式,它可以极大地提高我们的网页设计效率,并且使用起来非常简单。希望这篇文章能对你掌握 CSS Flexbox 布局技术提供一些帮助。

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

纠错
反馈