本文最后更新于 2024-03-23T16:32:23+00:00
flex
核心是:一维布局
父元素设置 display:flex;可实现子元素的弹性布局
父元素称为‘容器’,子元素称为‘项目’
‘容器’有两根轴:x、y,默认沿着 x 轴排列
‘容器’常用属性设置:
1 2 3 4 5 6 7 8 9 10 11 12 13
| .box { flex-deriction: row(默认 x 轴) | column(y 轴) | ...
flex-wrap: npwarp(默认不换行) | warp
justify-content: flex-start(默认值) | flex-end | center | space-between(两端对齐) | space-around(项目两侧对齐)
align-items: flex-start | flex-end | center | baseline | stretch(默认占满) }
|
‘项目’常用属性设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| .item { flex: 1 // 是 flex-grow: 1, flex-shrink: 1 和 flex-basis: 0% 的简写
flex-grow: <number>;
flex-shrink: <number>;
flex-basis: <length> | auto;
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
|
参考文档:Flex 布局教程:语法篇 - 阮一峰的网络日志
grid
核心是:二维布局
父元素设置 display:grid;可实现子元素的网格布局
父元素称为‘容器’,子元素称为‘项目’
‘容器’内有行和列,行列的交叉为‘单元格’
‘容器’常用属性设置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| .container { display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 100px 100px 100px;
grid-template-columns: 1fr 2fr 3fr;
grid-template-columns: minmax(100px, 1fr);
row-gap: 20px;
column-gap: 20px;
gap: 20px 20px;
grid-auto-flow: row(默认‘先行后列’) | column(‘先列后行’);
justify-items: start | end | center | stretch(默认占满); align-items: start | end | center | stretch(默认占满); }
|
参考文档:CSS Grid 网格布局教程 - 阮一峰的网络日志