css grid (网格布局)
容器里面的水平区域称为"行"(row),垂直区域称为"列"(column)。
display: grid指定一个容器采用网格布局
display: inline-grid;行内元素。
注意,设为网格布局以后,容器子元素(项目)的float、display: inline-block、display: table-cell、 vertical-align和column-*等设置都将失效。
grid-template-columns: 100px 100px 100px;
grid-template-rows: 100px 100px 100px;
grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];
grid-template-rows: [r1] 100px [r2] 100px [r3] auto [r4];
grid-row-gap: 20px;
grid-column-gap: 20px;
缩写:grid-gap: 20px 20px;
grid-template-areas: 'a b c'
'd . f'
'g h i';
区域不需要利用,则使用"点"(.)表示。
'注意,区域的命名会影响到网格线。每个区域的起始网格线,会自动命名为区域名-start,终止网格线自动命名为区 域名-end。
'比如,区域名为header,则起始位置的水平网格线和垂直网格线叫做header-start,终止位置的水平网格线和垂直 网格线叫做header-end。'
grid-auto-flow: column;
row dense和column dense。这两个值主要用于,某些项目指定位置以后,剩下的项目怎么自动放置。
grid-auto-rows: 50px;
justify-items: start | end | center | stretch;
align-items: start | end | center | stretch;
缩写:place-items: start end
justify-content: start | end | center | stretch | space-around | space-between | space-evenly;
align-content: start | end | center | stretch | space-around | space-between | space-evenly;
缩写:place-content: space-around space-evenly;
grid-area: h
grid-area: <row-start> / <column-start> / <row-end> / <column-end>;
grid-area: 1 / 1 / 3 / 3;
grid-column-start属性:左边框所在的垂直网格线
grid-column-end属性:右边框所在的垂直网格线
grid-row-start属性:上边框所在的水平网格线
grid-row-end属性:下边框所在的水平网格线
grid-column-start: 2;
grid-column-end: 4;
grid-column-start: span 2;
缩写形式 grid-column: 1 / 3;
grid-row: 1 / 2;
justify-self: start | end | center | stretch;
align-self: start | end | center | stretch;
缩写: place-self: <align-self> <justify-self>;
repeat('重复次数','重复值')
grid-template-rows: repeat(3, 33.33%);
grid-template-columns: repeat(2, 100px 20px 80px);
auto-fill 自动填充列数/行数
grid-template-columns: repeat(auto-fill, 100px);
fr(类似flex:1的用法)如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍。
minmax(最小值,最大值)
grid-template-columns: 1fr 1fr minmax(100px, 1fr);
auto 关键字表示由浏览器自己决定长度。
grid-template-columns: 100px auto 100px;
参考地址:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html