css(2)布局篇
2.grid布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>grid布局</title>
<style>
html, body{
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
.table{
display: grid;
/* grid-template-columns: 50px 50px 50px 50px; */
grid-template-columns: repeat(4, 50px);
/**
指定多少列和列宽
*/
grid-template-rows: repeat(4, 50px);
/* grid-template-rows: 50px 50px 50px 50px; */
/**
指定多少行和行高
*/
grid-row-gap: 10px;
/**
行间距
*/
grid-column-gap: 10px;
/**
列间距
*/
grid-gap: 10px 10px;
/**
row-gap, column-gap的缩写 row在前 column在后
如果 row和col的值相同则可以合并
grid-gap: 10px;
*/
grid-auto-flow: column;
/**
项目填充顺序,默认为row即填满一行再填第二行
column: 填满第一列在填满第二列
row dense: 行填满剩余部分处理
column dense: 列填满剩余部分处理
**/
/* justify-items: center;
align-items: center; */
/**
单元格内容对齐方式
center 居中
start 左对齐
end 右对齐
center 沾满宽度
*/
justify-content: center;
/**
整个内容区域水平对齐方式
start | end | center | stretch | space-around | space-between | space-evenly
start - 对齐容器的起始边框
end - 对齐容器的结束边框。
center - 容器内部居中。
stretch - 项目大小没有指定时,拉伸占据整个网格容器。
space-around - 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍。
space-between - 项目与项目的间隔相等,项目与容器边框之间没有间隔。
space-evenly - 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔。
*/
align-content: center;
/**
同上
*/
grid-auto-rows: 50px;
/**
超出的项目的默认高度
*/
}
.col{
background-color: brown;
grid-column: 1 / 3;
/**
占据单元格1到3列
*/
grid-row: 1 / 3;
/**
占据单元格1到3列
*/
}
.row{
background-color: aqua;
grid-row: 5 / span 1;
grid-column: 2 / span 1;
}
.grid{
display: grid;
width: 100%;
grid-template-columns: repeat(auto-fill, 100px);
/**
列以宽度为100px自动填充,直到容器宽度不够
**/
grid-template-rows: repeat(auto-fill, 100px);
/**
行以宽度为100px自动填充,直到容器高度不够
**/
}
.fr{
height: 100px;
display: grid;
grid-template-columns: 1fr 1fr 2fr;
/**
三列, 1,2列宽度相同 3列宽度为1,2列的两倍
**/
grid-template-rows: 1fr 1fr 2fr;
/**
三行, 1, 2行高度相同,3行高度为1, 2行的两倍
**/
}
.minmax{
display: grid;
width: 500px;
height: 100px;
grid-template-columns: 1fr 1fr minmax(50px, 2fr);
/**
三列, 1,2列宽度相同 3列宽度最小为50px 最大为1,2列的两倍
**/
grid-template-rows: 1fr 1fr minmax(50px, 2fr);
/**
三行, 1,2行高度相同 3行最小为50px 最大为1,2行的两倍
**/
}
.auto{
display: grid;
grid-template-columns: 100px auto 100px;
/**
三列 1,3列固定为100px,2列自适应
*/
grid-template-rows: 100px;
}
</style>
</head>
<body>
<div class="table">
<div class="col"></div>
<div class="row"></div>
</div>
<!--子项自动充满 auto-fill关键字--->
<div class="grid">
</div>
<!--子项比例 fr关键字--->
<div class="fr">
</div>
<!--minmax-->
<div class="minmax"></div>
<!--auto-->
<div class="auto"></div>
</body>
</html>

浙公网安备 33010602011771号