采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
1.flex-direction: row | row-reserve | column | column-reserve
决定主轴的方向(项目排列的方向):↑ | ↓ | → | ←
2.flex-wrap: nowrap | warp | warp-reserve
换行:不换行 | 换行 | 第一行在下方
3.flex-flow:[flex-direction] [ flex-warp]
是flex-direction和flex-flow的缩写
4.justify-content:flex-start | flex-end | center | space-between | space-around
主轴上的对齐方式:左对齐 | 右对齐 | 居中 | 两端对齐| 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
5.aline-items:flex-start | flex-end | center | baseline | stresch
项目在交叉轴(Y轴)上的对齐方式:上对齐 | 下对齐 | 居中 | 按第一行文字对齐 | 如果项目未设置高度或设为auto,将占满整个容器的高度
1.order:数字
自定义项目的排序
2.flex-grow:数字
项目的放大比例
3.flex-shrink:数字
项目缩小比例
4.flex-base:[length] | auto
定义项目占据的主轴空间大小,默认为auto
5.flex:none | [flex-grow flex-shrink flex-base]
flex是flex-grow、flex-shrink、flex-base的缩写,默认值为0 1 auto
align-self:auto | flex-start | flex-end | center | baseline | stretch
允许单个项目有自己的对齐方式
应用display:gird的元素就是网格容器,是所有网格项 的父元素。
网格线:网格结构的分界线
网格轨道:类似网格的行和列
网格单元格:一个格子就是一个单元
网格区域:任意数量的单元组成
1.display
display: grid //生成一个块级网络
diaplay:inline-gird //生成一个内联网络
2.grid-templte-columns | gird-template-rows
用来定义网格的行和列,值表示网格轨道的大小
grid-template-columns: 40px 50px auto 50px 40px; //每个值都代表一列,设五个值就代表有五列
grid-template-rows: 25% 100px auto; //值可以用百分比表示,也可以设为auto
//也可以为每一条网格线取名
grid-template-columns: [first] 40px [line2] 50px [line3] auto [col4-start] 50px [five] 40px [end];
grid-template-rows: [row1-start] 25% [row1-end] 100px [third-line] auto [last-line];
//一条网格线可以有多个名字,比如row1-end,row2-start
grid-template-rows: [row1-start] 25% [row1-end row2-start] 25% [row2-end];
3.grid-template-areas
通过指定名称来定义网格区域
gird-template-areas:
"head head"
"nav main"
"nav foot"
4.grid-template
grid-template-rows ,grid-template-columns ,grid-template-areas 的简写属性
grid-template:
<grid-template-areas> | <grid-template-rows> / <grid-template-columns>;
5.grid-colunm-gap/grid-row-gap
规定网格线的大小,即单元格之间的间距
grid-column-gap: <line-size>;
grid-row-gap: <line-size>;
简写 grid-gap
grid-gap: <grid-row-gap> <grid-column-gap>;
6.justify-items
设置单元格水平位置
start:左侧对齐
end:右侧对齐
center:水平居中对齐
stretch:填满单元格的宽度(默认值)
(用文字模拟一下,就差不多这个意思)
7.aline-items
设置垂直位置
start:顶部对齐
end:底部对齐
center:将网格项对齐到其单元格的垂直中间位置(垂直居中对齐)
stretch:填满单元格的高度(默认值)
8.place-items
aline-items和justfy-items的缩写
palce-items:<align-items> <justify-items>
9.justify-content
网格总计的大小可能会小于网格容器的大小,justify-content可以设置网格在容器内的水平位置
start:左侧对齐
end:右侧对齐
center:水平居中对齐
space-around:网格项之间存在间隔,且大小一样而网格项和左右两端的间隔为一半
space-between:网格项之间存在间隔,且大小一样,左右两端没有空间
space-evenly:网格项之间,网格项和两端之间都存在间隔,且大小一样
stretch:调整 网格项(grid items) 的宽度,允许该网格填充满整个 网格容器 的宽度
10.align-content
在网格总大小小于网格区域的情况下设置网格的垂直位置
start:左侧对齐
end:右侧对齐
center:垂直居中对齐
space-around:网格项之间存在间隔,且大小一样而网格项和上下两端的间隔为一半
space-between:网格项之间存在间隔,且大小一样,上下两端没有空间
space-evenly:网格项之间,网格项和上下两端之间都存在间隔,且大小一样
stretch:调整 网格项(grid items) 的宽度,允许该网格填充满整个 网格容器 的宽度
11.place-content
place-content 是设置 align-content 和 justify-content 的简写形式。
12.grid-auto-columns / grid-auto-rows
指定任何自动生成的网格轨道(grid tracks)(又名隐式网格轨道)的大小。
13.grid-auto-flow
如果你有一些没有明确放置在网格上的网格项(grid items),自动放置算法 会自动放置这些网格项。该属性控制自动布局算法如何工作。
值:
row:告诉自动布局算法依次填充每行,根据需要添加新行 (默认)
column:告诉自动布局算法依次填入每列,根据需要添加新列
dense:告诉自动布局算法在稍后出现较小的网格项时,尝试填充网格中较早的空缺
14.gird
grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, 和 grid-auto-flow的简写。
/ [auto-flow | dense]
[auto-flow | dense]
/
1.grid-column-start / grid-column-end / grid-row-start / grid-row-end
规定网格内网格项的位置
grid-column-start: <number> | <name> | span <number> | span <name> | auto
grid-column-end: <number> | <name> | span <number> | span <name> | auto
grid-row-start: <number> | <name> | span <number> | span <name> | auto
grid-row-end: <number> | <name> | span <number> | span <name> | auto
2.grid-column / grid-row
分别为 grid-column-start + grid-column-end 和 grid-row-start + grid-row-end 的简写形式。
grid-column | grid-row:<start-line> / <end-line> | <start-line> / span <value>;
3.grid-area
为网格项提供一个名称也可以做为grid-row-start + grid-column-start + grid-row-end + grid-column-end 的简写。
:你所选的名称
/ / / :数字或分隔线名称
4.justify-self/align-self
设置网格项再网格内的位置,与justify-items/align-items类似
5.place-self
place-self 是设置 align-self 和 justify-self 的简写形式。