flex 布局属性有哪些?

一、容器属性(父元素设置)

设置父容器为 Flex 布局后,子元素自动成为 Flex 布局

1. display
/* 定义容器的 flex 布局 */
.container {
  display: flex;       /* 块级 flex 容器 */
  display: inline-flex; /* 行内 flex 容器 */
}
2. flex-direction
/* 定义主轴方向 */
.container {
  flex-direction: row | row-reverse | column | column-reverse;
}
  • row:默认,水平排列(左到右)
  • row-reverse:反向水平排列
  • column:垂直排列(上到下)
  • column-reverse:反向垂直排列
3. flex-wrap
/* 定义是否允许换行 */
.container {
  flex-wrap:nowrap; // (默认):不换行,项目可能被压缩
  flex-wrap: wrap;  // 换行,新行在下方
  flex-wrap: wrap-reverse;  // 换行,新行在上方
}
4. flex-flow

flex-direction 和 flex-wrap 的简写

.container {
  flex-flow: row wrap; /* 方向为行,允许换行 */
}
5. justify-content

/* 定义主轴上的对齐方式 */
.container {
  justify-content: flex-start; // 默认,左对齐
}
  • flex-end :尾端对齐。
  • center :居中对齐。
  • space-between :两端对齐,项目间隔相等。
  • space-around :项目两侧间隔相等(视觉上间隔不相等),只有 flex 元素之间的空间是相等的
  • space-evenly :平均对齐,不靠着容器壁,剩余空间平分。即 flex 元素之间和flex元素与容器的空间都是相等的
6. align-items
/* 定义项目在交叉轴上的对齐方式 */
.container {
  align-items: stretch | flex-start | flex-end | center | baseline;
}
  • stretch (默认):拉伸填满容器高度。
  • center :垂直居中。
7. align-content
/* 定义 多行 Flex 项目在交叉轴上的对齐方式(单行无效) */
.container {
  align-content: stretch | flex-start | flex-end | center | space-between | space-around;
}

二、子元素设置

1. order
/* 定义项目的排列顺序,数值越小越靠前(默认 0) */
.item {
  order: 5; /* 数值可以是正数或负数 */
}

2. flex-grow
/* 定义项目的放大比例(默认 0,即不放大) */
.item {
  flex-grow: 2; /* 剩余空间按比例分配 */
}
3. flex-shrink
/* 定义项目的缩小比例(默认 1,即空间不足时缩小) */
.item {
  flex-shrink: 0; /* 禁止缩小 */
}
4. flex-basis
/* 定义项目在分配多余空间之前的初始大小(类似 width) */
.item {
  flex-basis: 200px | auto; /* 默认 auto */
}
5. flex
/* flex-grow, flex-shrink, flex-basis 的简写(推荐优先使用) */
.item {
  flex: 1 0 20px; // 顺序:grow | shrink | basis
  flex: auto;     // 等价于 1 1 auto
  flex:none;     // 等价于 0 0 auto  
}
6. align-self
/* 允许单个项目与其他项目不同的对齐方式(覆盖 align-items) */
.item {
  align-self: auto | stretch | flex-start | flex-end | center | baseline;
}

三、附加属性

gap / row-gap / column-gap
/* 定义项目之间的间距(类似网格布局的间隔)*/
.container {
  gap: 10px;          /* 行和列的间距均为 10px */
  row-gap: 20px;      /* 行间距 */
  column-gap: 30px;   /* 列间距 */
}

四、典型场景

1. 水平居中

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

2. 两栏布局

左侧固定,右侧自适应

.left {
  flex: 0 0 200px; 
}
.right {
  flex: 1; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值