Correcting teacher:Guanhui
Correction status:qualified
Teacher's comments:很好!Grid 是一个非常强大的 CSS 布局方案,可以任意组合不同的网格,做出各种各样的布局!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>0628作业:放php.cn课程列表</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
a {
text-decoration: none;
font-size: 14px;
color: #666;
}
/* 大容器 */
.courses-list {
width: 1200px;
height: 646px;
display: grid;
margin: auto;
}
/* 课程大标题 */
.courses-list > .course-title {
color: #555;
text-align: center;
height: 60px;
line-height: 60px;
}
/* 课程列表 */
.courses-list > .container {
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-rows: repeat(3, 1fr);
}
.courses-list > .container > .course {
width: 217px;
height: 166px;
/* background-color: violet; */
border-radius: 5%;
box-shadow: 0 0 10px #888;
place-self: start center;
}
.courses-list > .container > .course.first {
grid-row: span 2;
height: 362px;
}
/* 课程图片 */
.courses-list > .container > .course img {
width: 100%;
border-radius: 5%;
}
.courses-list > .container > .course .desc {
display: grid;
place-content: space-between;
min-height: 84px;
background-color: white;
border-radius: 5%;
padding: 10px;
position: relative;
top: -42px;
}
.courses-list > .container > .course .desc span {
color: #555;
font-size: smaller;
}
.courses-list > .container > .course .desc a span {
background-color: #939999;
color: white;
padding: 1px;
border-radius: 2px;
}
.courses-list > .container > .course .desc:hover {
min-height: 130px;
position: relative;
cursor: pointer;
top: -90px;
/* 添加css过度效果 */
transition: top 0.5s;
}
</style>
</head>
<body>
<div class="courses-list">
<h3 class="course-title">PHP入门精品课程</h3>
<!-- 课程列表,用grid布局 -->
<div class="container">
<div class="course first">
<a href=""><img src="img/first.jpg" alt="" /></a>
</div>
<div class="course">
<a href=""><img src="img/img01.png" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img02.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img03.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img04.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img05.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img06.jpeg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img07.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img08.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img09.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img10.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img11.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img12.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
<div class="course">
<a href=""><img src="img/img13.jpg" alt="" /></a>
<div class="desc">
<a href=""><span>30分钟</span>学会布局网站布局</a>
<span>6W+播放</span>
</div>
</div>
</div>
</div>
</body>
</html>
运行效果图
3.2 常用属性
/** 定义网格布局 ** /
display: grid;
/*设置5列*/
grid-template-columns: 100px 100px 100px 100px 100px;
/*简写 */
grid-template-columns: repeat(5, 100px);
/ *设置3行 */
grid-template-rows: 100px 100px 100px;
/*简写*/
grid-template-rows: repeat(3, 100px);
.container > .item:first-of-type {
background-color: lightcoral;
/*
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2; */
/* grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 2;
grid-row-end: 3; */
/* 默认总是跨一行或一列 */
/* grid-column-start: 3;
grid-row-start: 2; */
/* 将项目放置到一个网格区域中,网格区域只能是矩形区域 */
/* grid-column-start: 2;
grid-column-end: 4;
grid-row-start: 2;
grid-row-end: 4; */
/* 行与列的跨越 */
/* grid-column-start: 2;
grid-column-end: span 2;
grid-row-start: 2;
grid-row-end: span 2; */
/* 简化 */
/* grid-column: 起始列号 / 结束列号;
grid-row: 起始行号 / 结束行号 */
/* grid-column: 2 / 4;
grid-row: 2 / 4; */
/* 跨越行和列简写 */
/* grid-column: 2 / 4;
grid-row: 2 / span 2; */
/* 跨越整行 */
/* grid-column: 1 / 4; */
/* grid-column: 1 / span 3; */
/* grid-column: 2 / 4; */
/* grid-column: -1 / -3; */
/* 充满整个容器 */
/* grid-column: 1 / span 3;
grid-row: 1 / span 3; */
/* 根据项目的当前默认位置进行简化 */
/* grid-column: span 3;
grid-row: span 3; */
/* 想写得更加的直观 */
/* grid-column-start: 1; */
grid-column-end: span 3;
/* grid-row-start: 1; */
grid-row-end: span 3;
/*项目在grid容器中的对齐方案*/
/* 当容器在存在剩余空间的时候,才有意义 */
/* place-content: 垂直方向对齐方式 水平方向对齐方式; */
/* 剩余空间分配方案1: 在顶部和左侧进行分配,简单的理解为二边分配 */
/* 垂直居中, 水平居左 */
/* place-content: center start; */
/* 垂直居上, 水平居中 */
/* place-content: start center; */
/* 垂直,水平全部居中 */
/* place-content: center center; */
/* 垂直,水平全部居中 简写 */
place-content: center;
/* 剩余空间分配方案2: 在每个单元格之间进行分配 */
/* 垂直方向二端对齐, 水平分散对齐 */
place-content: space-between space-around;
/* 垂直分散对齐,水平平均对齐 */
place-content: space-around space-evenly;
/*项目在 grid 单元格中的对齐方案*/
/* place-items: 垂直对齐方式 水平对齐方式; */
/* 项目在grid单元格中的对齐方案 */
/* place-items: 垂直对齐方式 水平对齐方式; */
place-items: strech;
/* 关键字 */
/* place-items: auto;
place-items: normal; */
/* 垂直居中,水平居左 */
/* place-items: center start; */
/* 垂直,水平都居中 */
/* place-items: center center; */
place-items: center;
/* 垂直居中,水平拉伸,单元格不能定义宽度,不然看不到效果*/
place-items: center stretch;
/*项目在 grid 网格区域中的对齐方案/
/* 网格区域,就是一个或多个单元格组成的矩形空间 */
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
/* 单元格垂直水平居中整体对齐 */
place-items: center;
/* 设置行列间隙 */
/* row-gap: 5px;
column-gap: 5px; */
/* 行列相等 简写 */
/* gap: 5px; */
/* 行10px 列5px */
/* gap:行间距 列间距 */
gap: 10px 5px;