Grid布局

112 阅读2分钟

Grid布局

display:grid;

列宽

grid-template-colums

grid-template-colums: 20px 20px 20px;   //这样就会把列分成3份每份20px
grid-template-colums:repeat(3,20px);  //跟上面是一样的效果 3是三份,20px是每份20px
grid-template-colums:1fr 1fr 1fr;  //平分父元素分为三份
//属性:auto-fill //自动填充(将一行沾满到无法排列的时候换行)
//minmax最大最小值
​
grid-template-colums:repeat(auto-fill,150px)
grid-template-colums:repeat(auto-fill,minmax(150px,1fr)) 

行高

grid-template-rows/grid-auto-rows

grid-template-rows:第一行 第二行 第三行 第......;  //每一行都可以设定高度
grid-auto-rows:auto(默认高度)/100xp(指定高度);  //可以同时设定每一行为默认高度或者是指定高度

注意:grid-template-rows的优先级要高于grid-auto-rows,当grid-template-rows有高度的时候grid-auto-rows设定的高度是不会生效的

行缝隙列缝隙

行缝隙

grid-row-gap:20px; //每个小盒子行缝隙20px

列缝隙

grid-colum-gap:20px; //每个小盒子列缝隙20px

简写形式

gap: 20px;   //当只有一个属性值得时候代表列和行的缝隙是一样的  有两个属性值的时候 gap:20px 30px;  第一个代表列第二个代表行

按网格线和区域写法

grid-colum-start/grid-colum-end

grid-colum-start:1; grid-colum-end:3;  //列的线1到线3
grid-colum-start:1; grid-colum-end:2; //列的线1到线2

grid-colum-start/grid-colum-end简写形式

grid-colum:1/3;
grid-colum:1/2;

注意:当只有一个间距的时候可以只写前面的数 例如:grid-colum:2/3;可以简写成grid-colum:2;

grid-row-start/grid-row-end

grid-row-start:1; grid-row-end:3;  //列的线1到线3
grid-row-start:1; grid-row-end:2; //列的线1到线2

grid-row-start/grid-row-end简写形式

grid-row:1/3;
grid-row:1/2;

注意:当只有一个间距的时候可以只写前面的数 例如:grid-row:2/3;可以简写成grid-row:2;

上面的方式也可以用区域的写法(在父元素要有确定有几列)

给指定元素定义区域名

 grid-area:header;
 grid-area:content;
 grid-area:sidebar;
 grid-area:footer;

在父元素中利用grid-template-area来指定元素的位置

grid-template-area:
"header header"
"sidebar content"
"footer footer"
;