1. display
属性
序号 |
属性值 |
描述 |
备注 |
1 |
flex; |
创建 flex 块级容器 |
内部子元素自动成为 flex 项目 |
2 |
inline-flex; |
创建 flex 行内容器 |
内部子元素自动成为 flex 项目 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.container{
width: 500px;
height: 400px;
display: flex;
}
.item{
width: 50px;
height: 50px;
background: gray;
}
.item:nth-of-type(1){
background: lavenderblush;
}
.item:nth-of-type(2){
background: lightblue;
}
.item:nth-of-type(3){
background: lightcoral;
}
.item:nth-of-type(4){
background: lightgreen;
}
.item:nth-of-type(5){
background: lightyellow;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
</body>
</html>
flex-direction: 分开意思就是 flex 是盒子 direction 是方向 含义为盒子方向
单行与换行
/* 默认不换行显示,如果当前容器容纳不小, 项目会自动收缩 */
flex-wrap: nowrap;
/* 如果允许换行, 当前行容纳不小的项目会拆行显示,此时,创建的容器叫:多行容器 */
flex-wrap: wrap;
- align-content: stretch; align-content: flex-start; align-content: flex-end; align-content: center;和横向排列一样
- align-content: space-between; /纵向排列两端对齐/
- align-content: space-around; 分散对齐
- align-content: space-evenly; 平均对齐
flex 容器主轴与项目换行简写
flex-flow
属性
flex-flow
是属性flex-direction
和flex-wrap
的简写- 语法:
flex-flow: flex-direction flex-wrap
属性值 |
描述 |
row nowrap 默认值 |
主轴水平, 项目不换行 |
row wrap 默认值 |
反向横向排列, 项目换行 |
column nowrap 默认值 |
纵向排列, 项目换行 |
column-reverse wrap 默认值 |
反向纵向排列 , 项目换行 |
这个简写很好用长期会用
操纵子元素
子元素的排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.container{
width: 500px;
height: 400px;
display: flex;
flex-flow: row wrap ;
}
.item{
width: 50px;
height: 50px;
background: gray;
/*权重越高 排的越靠前*/
order: 0;
}
.item:nth-of-type(1){
background: lavenderblush;
order:5;
}
.item:nth-of-type(2){
background: lightblue;
order: 4;
}
.item:nth-of-type(3){
background: lightcoral;
order: 3;
}
.item:nth-of-type(4){
background: lightgreen;
order: 2;
}
.item:nth-of-type(5){
background: lightyellow;
order: 1;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
</body>
</html>
flex 子元素交叉轴单独对齐
align-self
该属性可覆盖容器的align-items
, 用以自定义某个项目的对齐方式
序号 |
属性值 |
描述 |
1 |
auto 默认值 |
继承 align-items 属性值 |
2 |
flex-start |
与交叉轴起始线对齐 |
3 |
flex-end |
与交叉轴终止线对齐 |
4 |
center |
与交叉轴中间线对齐: 居中对齐 |
5 |
stretch |
在交叉轴方向上拉伸 |
6 |
baseline |
与基线对齐(与内容相关用得极少) |
-因为改了纵向排列 baseline的效果能出来 不然还是和默认一样
项目放大因子和缩小因子
- flex-grow: 0; 值为0的时候 不放大
- flex-shrink: 0;值为0的时候 不缩小 当父元素比子元素小的时候用
项目计算尺寸
/* auto === width */
flex-basis: auto;
/* flex-basis: 权重大于width; */
flex-basis: 70px;
flex-basis: 20%;
flex-basis: 5rem;
/* min-width / max-width 权重大于flex-basis; */
max-width: 100px;
flex-basis: 150px;
/* width < flex-basis < min/max-width; 1权重大小排比 */
flex 项目缩放的简写
1. flex
属性
- 项目放大,缩小与计算尺寸,对于项目非常重要,也很常用
- 每次都要写这三个属性,非常的麻烦,且没有必要
flex
属性,可以将以上三个属性进行简化:- 语法:
flex: flex-grow flex-shrink flex-basis
1.1 三值语法
序号 |
属性值 |
描述 |
1 |
第一个值: 整数 |
flex-grow |
2 |
第二个值: 整数 |
flex-shrink |
3 |
第三个值: 有效宽度 |
flex-basis |
举例:
序号 |
案例 |
描述 |
1 |
flex: 0 1 auto |
默认值: 不放大,可收缩, 初始宽度 |
2 |
flex: 1 1 auto |
项目自动放大或收缩适应容器 |
3 |
flex: 0 0 100px |
按计算大小填充到容器中 |
1.2 双值语法
序号 |
属性值 |
描述 |
1 |
第一个值: 整数 |
flex-grow |
3 |
第二个值: 有效宽度 |
flex-basis |
举例:
案例 |
描述 |
flex: 0 180px |
禁止放大,按计算大小填充到容器中 |
1.3 单值语法
序号 |
属性值 |
描述 |
1 |
整数 |
flex-grow |
2 |
有效宽度 |
flex-basis |
3 |
关键字 |
`initial |
auto |
none` |
举例:
序号 |
案例 |
描述 |
1 |
flex: 1 |
flex: 1 1 auto |
2 |
flex: 180px |
flex: 1 1 180px |
3 |
initial |
flex: 0 1 auto |
4 |
auto |
flex: 1 1 auto |
5 |
none |
flex: 0 0 auto |
推荐使用flex
, 就像推荐使用flex-grow
设置主轴与换行一样
Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:效果图不错, 火狐浏览器对这个特别友好, 一定要学会调试和查看效果
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!