1.grid grid-template-columns
display:gridz|会将整个父容器切分成网格
grid-template-columns 设置grid布局网格列的width
1fr
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
/*display:gridz|会将整个父容器切分成网格*/
/*grid-template-columns 设置grid布局网格列的width
1fr
*/
.parent{
width: 400px;
height: 400px;
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
.item{
width: 100px;
height: 100px;
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
2.grid-temlpate-rows
设置网格行的高度
传一个参数 设置第一行的高度
传两个参数 第一个参数第一行 第二参数是第二行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
/*display:gridz|会将整个父容器切分成网格*/
/*grid-template-columns 设置grid布局网格列的width
1fr
*/
/* grid-temlpate-rows 设置网格行的高度
传一个参数 设置第一行的高度
传两个参数 第一个参数第一行 第二参数是第二行
*/
.parent{
width: 400px;
height: 400px;
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px 200px;
}
.item{
width: 100px;
height: 100px;
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
3.repeat
repeat(num,value) 第一个参数传的是行/列数,第二个参数传递值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
.parent{
width: 400px;
height: 400px;
background-color: red;
display: grid;
/*repeat(num,value) 第一个参数传的是行/列数,第二个参数传递值*/
grid-template-columns: repeat(3,1fr);
grid-template-rows: repeat(2,100px);
}
.item{
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
4.grid-column-gap grid-row-gap
grid行或列的间隙
简写:
/grid-gap:row column/
grid-gap:10px 20px;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
.parent{
width: 400px;
height: 400px;
background-color: red;
display: grid;
/*repeat(num,value) 第一个参数传的是行/列数,第二个参数传递值*/
grid-template-columns: repeat(3,1fr);
grid-template-rows: repeat(2,100px);
grid-column-gap:10px;
grid-row-gap:10px;
}
.item{
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
5.auto=1fr
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
.parent{
width: 400px;
height: 400px;
background-color: red;
display: grid;
/*repeat(num,value) 第一个参数传的是行/列数,第二个参数传递值*/
/*auto=1fr*/
grid-template-columns: 100px auto 100px;
grid-template-rows: repeat(2,100px);
/*grid-gap:row column*/
grid-gap:10px 20px;
}
.item{
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
6.grid水平居中
让网格水平居中
设置在网格在容器中水平方向justify-content
设置在网格在容器垂直平方向align-content
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
.parent{
width: 400px;
height: 400px;
background-color: red;
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: repeat(2,100px);
grid-gap:10px 20px;
justify-content: center;
align-content: center;
/*
让网格水平居中
设置在网格在容器中水平方向justify-content
设置在网格在容器垂直平方向align-content
*/
}
.item{
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
7.单独设置元素在单元格中的位置
水平justify-self:
垂直align-self
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
.parent{
width: 500px;
height: 400px;
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 200px;
/*设置元素在单元格水平方向的对齐*/
justify-items: center;
align-items: center;
}
.item{
width: 100px;
height: 100px;
border: 1px solid #333;
}
/*单独设置元素在单元格中的位置
水平justify-self:
垂直align-self:
*/
.one{
justify-self: start;
align-self: start;
}
</style>
<body>
<div class="parent">
<div class="item one"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>
8.justify-items: align-items:
设置元素在单元格水平/垂直方向的对齐
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{margin: 0;padding: 0;}
.parent{
width: 500px;
height: 400px;
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 200px;
/*设置元素在单元格水平方向的对齐*/
justify-items: center;
align-items: center;
}
.item{
width: 100px;
height: 100px;
border: 1px solid #333;
}
</style>
<body>
<div class="parent">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</body>
</html>