CSS display box flex介绍

CSS display box flex介绍

在本文中,我们将详细介绍CSS的display属性中的一个很有用的值——flex。

阅读更多:CSS 教程

什么是Flexbox?

Flexbox是CSS3中的一种布局模式,也称为flexible box model。使用Flexbox可以更方便地对盒状模型进行布局,并且适用于不同设备和不同的屏幕大小。

如何使用Flexbox?

要使用Flexbox,请将父元素的”display”属性设置为”flex”或者”inline-flex”。 以下面的HTML代码为例:

<div class="container">
  <div class="box">1</div>
  <div class="box">2</div>
  <div class="box">3</div>
</div>

我们可以用下面的CSS代码来定义容器(父元素)和盒子(子元素)之间的Flexbox布局:

.container {
  display: flex;
}
.box {
  flex: 1;
}

以上代码中,.container 属性设置了”display: flex”,这表示该容器使用了Flexbox布局。.box 属性使用了”flex: 1″,表示各盒子子元素随容器自适应,每个盒子的宽度将自动调整为相同的大小。

Flexbox的属性

Flexbox布局还涉及了多个重要的属性,这些属性可以控制Flexbox布局中的盒子元素。

主轴和交叉轴

Flexbox布局有一个”主轴”和一个”交叉轴”。 主轴是Flexbox方向,可以是水平方向或垂直方向。默认方向是水平方向(从左到右)。 交叉轴是垂直于主轴的方向。

flex-direction

此属性定义了Flexbox子元素在容器中排列的方向。

  • row(默认值): 从左到右以行的方式排列。
  • column: 从上到下以列的方式排列。
  • row-reverse: 从右到左以行的方式排列。
  • column-reverse: 从下到上以列的方式排列。

示例代码:

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

justify-content

此属性定义了Flexbox子元素在主轴上的对齐方式。

  • flex-start(默认值):在主轴上顶格排列;
  • flex-end:在主轴上对齐末端;
  • center:在主轴上居中对齐;
  • space-between:在主轴上留出两端边距,仅保留间隔;
  • space-around:在主轴上留出两端边距,将间隔均匀分布;

示例代码:

.container {
  display: flex;
  justify-content: space-around;
}

align-items

此属性定义了Flexbox子元素在交叉轴上的对齐方式。

  • stretch(默认值):拉伸到与盒子同样高度或宽度;
  • flex-start:与交叉轴的起点对齐;
  • flex-end:与交叉轴的终点对齐;
  • center:在交叉轴上居中对齐;
  • baseline:与其他所有盒子中的文本基线对齐;

示例代码:

.container {
  display: flex;
  align-items: center;
}

flex-wrap

此属性定义了Flexbox子元素是否可以换行。

  • nowrap(默认值):所有子元素在一行上排列;
  • wrap:子元素可以分多行排列,不会压缩;
  • wrap-reverse: 和wrap一样,但从尾部开始排列。

示例代码:

.container {
  display:flex;
  flex-wrap: wrap;
}

align-content

此属性定义了多行Flexbox子元素之间的对齐方式。

  • stretch(默认值):每一行拉伸到与容器高度相同的高度;
  • flex-start:第一行在交叉轴上对齐起始位置,最后一行在交叉轴上对齐末端;
  • flex-end:第一行在交叉轴上对齐末端位置,最后一行在交叉轴上对齐起始位置;
  • center:各行在交叉轴上居中对齐;
  • space-between:各行间间隔相等,第一行在交叉轴上对齐起始位置,最后一行在交叉轴上对齐末端;
  • space-around:各行间间隔相等,每行前后具有空间。

示例代码:

.container {
  display: flex;
  flex-wrap: wrap;
  align-content: space-between;
}

order

此属性定义了Flexbox子元素的排列顺序。

示例代码:

.box:first-child {
  order: 2;
}
.box:last-child {
  order: 1;
}

flex-grow

此属性定义了一个Flexbox子元素在空间充足时的放大比率。

示例代码:

.box:first-child {
  flex-grow: 2;
}
.box:last-child {
  flex-grow: 1;
}

flex-shrink

此属性定义了Flexbox子元素在空间狭缩时的缩小比率。

示例代码:

.box:first-child {
  flex-shrink: 1;
}
.box:last-child {
  flex-shrink: 2;
}

flex-basis

此属性定义了Flexbox子元素的最小尺寸。

示例代码:

.box {
  flex-basis: 100px;
}

flex

此属性是以上三个属性的简写,依次表示flex-grow、flex-shrink和flex-basis。

示例代码:

.box {
  flex: 2 1 100px;
}

总结

Flexbox是一个功能强大的CSS布局工具,可以让我们更轻松地对Web页面布局进行控制,无论是针对桌面端还是移动端。在使用Flexbox时,请注意Web浏览器的兼容性,以确保在不同的设备上都能正常显示。在实际开发中,我们可以通过实验样式来掌握这些布局属性的用法,以便于更快地完成前端开发工作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程