# flex 项目计算尺寸
## 1. `flex-basis`属性
- 在分配多余空间之前,项目占据的主轴空间
- 浏览器根据这个属性,计算主轴是否有多余空间
- 该属性会覆盖项目原始大小(width/height)
- 该属性会被项目的`min-width/min-height`值覆盖
| 序号 | 属性值 | 描述 |
| ---- | ------ | ---------------------- |
| 1 | `auto` | 默认值: 项目原来的大小 |
| 2 | `px` | 像素 |
| 3 | `%` | 百分比 |
> 优先级: 项目大小 < `flex-basis` < `min-width/height`
---
![](https://img.kancloud.cn/c7/41/c7410fc9beeb66417bffca5c28e22803_378x225.jpg)
## 2. 示例
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>flex 项目计算尺寸</title>
<style>
/* 容器尺寸 */
.container {
width: 300px;
height: 150px;
}
/* flex容器 */
.container {
display: flex;
flex-flow: row wrap;
}
/* flex项目 */
.item {
width: 50px;
height: 50px;
background-color: lightcyan;
font-size: 1.5rem;
}
/* flex项目计算尺寸 */
/* 浏览器根据这个属性,计算主轴上是否存在剩余空间 */
.item {
/* 项目占据的主轴空间根据该属性计算,默认等于width/height */
flex-basis: auto;
/* 优先级大于: width/height */
flex-basis: 70px;
/* 支持百分比或表达式 */
flex-basis: 20%;
/* 1rem = 16px */
flex-basis: 5rem;
/* 优先级小于: min-width / min-height */
min-width: 90px;
/* flex-basis通常与flex-wrap:wrap配合使用 */
/* 主轴根据flex-basis计算项目所占空间,而不必关注项目自身大小 */
flex-basis: 100px;
/* 项目宽度大于100px,必须产生换行,只需更新flex-basis */
flex-basis: 150px;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
```
- 教学大纲
- HTML5基础
- 1-html基础知识
- 2-语义化结构元素
- 3-语义化文本元素
- 4-链接/列表/图像元素
- 5-表格元素
- 6-表单与控件元素[重点]
- CSS3基础
- 1-css与html文档
- 2-css选择器
- 3-细说盒模型
- Flex布局[精简版]
- 1-Flex概论
- 2-Flex布局是什么
- 3-Flex基本概念
- 4-Flex容器属性
- 5-Flex项目属性
- Flex布局[细说版]
- 1-flex 布局概述
- 2-flex 容器与项目
- 3-flex 容器主轴方向
- 4-flex 容器主轴项目换行
- 5-flex 容器主轴与项目换行简写
- 6-flex 容器主轴项目对齐
- 7-flex 容器交叉轴项目对齐
- 8-flex 多行容器交叉轴项目对齐
- 9-flex 项目主轴排列顺序
- 10-flex 项目交叉轴单独对齐
- 11-flex 项目放大因子
- 12-flex 项目收缩因子
- 13-flex 项目计算尺寸
- 14-flex 项目缩放的简写
- Flex布局[案例版]
- 1-调整项目顺序
- Grid布局[精简版]
- 1. 常用术语
- 2. 容器属性
- 3. 项目属性
- 4. 布局实例
- 1. 经典三列布局
- 2. 媒体查询
- Grid布局[细说版]
- 1-必知术语
- 2-容器创建与行列划分
- 3-单元格常用单位
- 4-项目填充到单元格
- 5-项目填充到网格区域
- 6-对齐容器中的所有项目
- 7-对齐单元格中所有项目
- 8-对齐单元格中某个项目
- 9-容器中行与列之间的间距