网格布局
<style>
.container {border:none;display: grid;height: 600px;grid-template-columns: 200px 1fr; /*两列,第一列200px,第二列自适应*/grid-template-rows: 50px 1fr 30px; /*三行:第一行:50px,第二行:自适应,第三行:30px*/row-gap: 3px; /*行间距*/column-gap: 3px; /*列间距*/grid-template-areas: "toubu toubu""daohang main""daohang yejiao";
}
.item {box-shadow: 0 0 5px #CCCCCC;padding:5px;text-align: center;
}
.header {grid-area: toubu; /*grid-area属性用于在网格布局中设置网格项目的大小和位置。 此属性还用于为网格项设置名称。*/
}
.nav{grid-area: daohang;
}.footer {grid-area: yejiao;
}.main {grid-area: main
}</style>
<div class="container"><div class="item header">头部</div><div class="item nav">导航</div><div class="item footer">页脚</div><div class="item main">主体部分</div>
</div>
.div01 {display: grid;grid-template-columns: repeat(4, 100px);grid-template-rows: repeat(4, 100px);grid-template-areas:"a . . . ""b b . . ""c . d d "". . d d ";grid-gap: 20px;
}.div02 {grid-area: a;
}.div03 {grid-area: b;
}.div04 {grid-area: c;
}.div05 {grid-area: d;
}.item {border: 2px solid red;
}
.div01 {display: grid;grid-template-columns: repeat(4, 100px);grid-template-rows: repeat(4, 100px);grid-template-areas:"a . . . ""b b . . ""c . d d "". . d d ";
}
先来看div01,也就是大的容器
display为grid,也就是grid布局
grid-template-columns也就是几列,我这边是4列, 所以需要写100px, 100px, 100px, 100px
这样写太麻烦,可以直接写成 repeat(4,100px)
grid-template-rows是几行,道理是一样的
然后是grid-template-areas,
这个是用来表示布局如何分配,如何分布,就像一个草图一样
"a . . . "
"b b . . "
"c . d d "
". . d d ";
比如这里,第一行就第一个格子表示a,其他都是没有,所以用点.来表示
右下角用了4个格子来表示d,所以d占用了4个格子
.div02 {grid-area: a;
}.div03 {grid-area: b;
}.div04 {grid-area: c;
}.div05 {grid-area: d;
}.item {border: 2px solid red;
}
然后子项目,也就是容器里面的方块,我们用grid-area,
grid布局