
flex是一维布局,grid是二维布局,横纵两个方向总是同时存在的
1.作用在grid容器
display:gird;
- grid-template-columns 对网格进行纵划分,单位可以是px,%,自适应auto,fr(网格剩余空间比例单位)
- grid-template-rows 对网格进行横划分,单位可以是px,%,自适应auto,fr
```html
<!DOCTYPE html>
123456789101112
- grid-template-areas:grid子项只要使用 grid-area 属性指定其隶属于哪个区- grid-template以上三个的简写形式```html<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title><style type="text/css">.box{width: 600px;height: 600px;border:1px dashed #000 ;display: grid;/*grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);grid-template-areas:"a1 a1 a1""a2 a2 a3""a2 a2 a3";*/grid-template:"a1 a1 a1" 1fr"a2 a2 a3" 1fr"a2 a2 a3" 1fr/1fr 1fr 1fr;}.box>div{border:1px solid red ;}.box>div:nth-child(1){grid-area:a1;}.box>div:nth-child(2){grid-area:a2;}.box>div:nth-child(3){grid-area:a3;}</style></head><body><div class="box"><div>1</div><div>2</div><div>3</div></div></body></html>
- grid-column-gap 定义网格间隙
- grid-row-gap 定义网格间隙
- grid-gap以上两个简写,先写行间距,再写列间距
- justify-items网格元素内容水平呈现方式:拉伸stretch/左中右对齐start/end/center
- align-items网格元素内容垂直呈现方式:拉伸stretch/上中下对齐start/end/center
- place-items以上两个简写,第一个垂直,第二个水平
```html
<!DOCTYPE html>
123456789
- place-items以上两个简写,第一个垂直,第二个水平
```html
<!DOCTYPE html>
- 容器需要调大下使用:- justify-content网格元素水平分布方式stretch/start/end/center/space-between/space-around/space-evenly- align-content网格元素垂直分布方式- place-content以上简写```html<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title><style type="text/css">.box{width: 600px;height: 600px;border:1px dashed #000 ;display: grid;grid-template-rows:repeat(3,100px);grid-template-columns:repeat(3,100px);justify-content:space-evenly;}.box>div{border:1px solid red ;}</style></head><body><div class="box"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div></div></body></html>
2.作用在grid子项上
- 1.grid-column-start水平方向上占据的起始位置
- 2.grid-column-end水平方向上占据的结束位置(span属性)向后添加的个数
- 3.grid-row-start垂直方向上占据的起始位置
- 4.grid-row-end垂直方向上占据的结束位置(span属性)
- grid-column:1和2的缩写
- grid-row:3和4的缩写
- 例grid-column:2 / 4;
```html
<!DOCTYPE html>
1
- 例grid-column:2 / 4;
```html
<!DOCTYPE html>
- 5.grid-area当前网格所占用的区域- grid-area:3横向起始/2纵向起始/4横向结束/4纵向结束```html<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title><style type="text/css">.box{width: 600px;height: 600px;border:1px dashed #000 ;display: grid;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);}.box>div{border:1px solid red ;grid-area:3/2/4/4;}</style></head><body><div class="box"><div>1</div></div></body></html>
- 6.justify-self单个网格元素的水平对齐方式start/end/center
- 7.align-self单个网格元素的垂直对齐方式
- place-self:6和7的缩写,先写垂直,再写水平
```html
<!DOCTYPE html>
123456789
- place-self:6和7的缩写,先写垂直,再写水平
```html
<!DOCTYPE html>
```
