Flexbox(弹性盒子布局)是个什么东西?(这个不错)

display: flex; 是 CSS 中的一个属性值,它表示将元素的布局模式设置为 Flexbox(弹性盒子模型)。这样,该元素就会成为一个弹性容器(flex container),其直接子元素(称为弹性子项,flex items)将按照弹性布局进行排列。


1. Flexbox 是什么?

Flexbox(弹性盒子布局)是一种一维布局模式,专门用于控制**横向(row)或纵向(column)**的元素对齐方式。它的特点包括:

  • 子元素可以自动调整大小(根据内容或容器大小)
  • 可以很方便地对齐、分布元素(如居中、对齐、间距调整)
  • 可以改变元素的排列方向(水平或垂直)

2. display: flex; 语法

如果一个元素设置 display: flex;,那么它的子元素就会按照弹性布局排列:

.container {
  display: flex;
}

这样,.container 就变成了一个 Flex 容器,它的直接子元素(flex items)就会按照默认的水平排列


3. Flex 容器的主要属性

display: flex; 之后,你可以使用以下属性来控制子元素的排列方式

(1)主轴方向:flex-direction

决定子元素的排列方向:

.container {
  display: flex;
  flex-direction: row; /* 默认:横向排列 */
}
作用
row水平方向(从左到右)(默认)
row-reverse水平方向(从右到左)
column垂直方向(从上到下)
column-reverse垂直方向(从下到上)

(2)主轴对齐方式:justify-content

控制子元素在主轴上的对齐方式

.container {
  display: flex;
  justify-content: center;
}
作用
flex-start起点对齐(默认)
flex-end终点对齐
center居中对齐
space-between两端对齐,元素之间均匀分布
space-around均匀分布,但左右有边距
space-evenly完全均匀分布

(3)交叉轴对齐方式:align-items

控制子元素在交叉轴上的对齐方式

.container {
  display: flex;
  align-items: center;
}
作用
stretch拉伸填充整个高度(默认)
flex-start顶部对齐
flex-end底部对齐
center居中对齐
baseline按文字基线对齐

(4)子元素的弹性:flex-grow

flex-grow 决定子元素能否伸展填满剩余空间

.item {
  flex-grow: 1;
}
  • flex-grow: 0;(默认)→ 不伸展,按内容大小排列
  • flex-grow: 1; → 伸展填满剩余空间
  • flex-grow: 2; → 伸展空间是其他 flex-grow: 1; 元素的两倍

4. 一个完整示例

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox 示例</title>
  <style>
    .container {
      display: flex;
      flex-direction: row; /* 横向排列 */
      justify-content: space-between; /* 两端对齐 */
      align-items: center; /* 垂直居中 */
      height: 200px;
      background-color: lightgray;
    }
    .item {
      width: 100px;
      height: 100px;
      background-color: steelblue;
      color: white;
      display: flex;
      align-items: center;
      justify-content: center;
    }
  </style>
</head>
<body>

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

</body>
</html>

效果:

  • 3 个 .item 水平方向排列
  • 两端对齐(justify-content: space-between;
  • 元素在容器垂直方向居中(align-items: center;

5. 总结

属性作用
display: flex;定义 Flexbox 容器
flex-direction主轴方向(row/column)
justify-content主轴对齐方式(居中、两端对齐等)
align-items交叉轴对齐方式(顶部、居中等)
flex-grow子元素伸展比例

Flexbox 可以大大简化响应式布局,比如水平垂直居中

.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值