12月28-29号作业
从第一堂课开始,一直深深的记得老师说过的一句话,”归零心态”;无论自己是否学过,从开始学习那一刻就要将自己归零。
好了,这次就开始了Grid布局之旅
1.Grid网格布局基本知识
2.评论回复案例(Grid布局)
先看整体效果,然后我会讲一下整体布局思路,给大家参考一下。
整体效果
一开始,拿到这个案例,使Grid布局,我是不知从何下手。分析结构感觉像多行一列,没有思绪(之前没使用Grid布局),后来想Grid布局得要把想成表格,就开始打格子先不想内容,就有了如下代码结构:
开始想它是6行3列,就放了18个类名item的div,先把格子排列出来;然后再填充内容,可以看到如下图结构(蓝色区域(6行3列)),这样就将内容分割出来了,需要注意的:
1.有些地方需要横跨多列,在网格项目中使用grid-column:起始列线编号 / 停止列线编号|横跨列数
,例如:textarea所在单元格横跨2列 grid-column:2 / 4
或者这样写grid-column:2 / span 2
;
2.某个单元格内容需要垂直居中,比如点赞块,使用align-self:center
,注意这是容器下项目的属性;如果对容器里面的单元格内容做垂直居中,使用align-items:center
;如果对容器里面整体网格区域做垂直居中,使用align-content:center
。
3.有些细小的区域内容对齐还可以采用flex布局,例如回复信息那块,要求每个文本独占一行,可以让其变成flex,然后使用flex-flow
做对齐;
上面三点是我这次案例感觉使用比较多的部分
结构图
代码
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Grid基础</title>
<link rel="stylesheet" href="static/font/iconfont.css">
<style>
body>div>div{
/*outline: 1px dashed red;*/
}
/*评论与回复*/
.comment-replay{
background-color: #fff;
display: grid;
grid-template-columns: 66px auto 60px;
grid-template-rows: auto;
grid-gap:10px 20px;
padding:15px;
}
/************评论区域*************/
/*标题*/
.comment-replay>.title{
grid-column: 1 / 4;
height: 80px;
}
/*标题内容*/
.comment-replay>.title>h3{
padding:10px 0;
}
.comment-replay>.title:first-of-type>h3{
padding-top: 20px;
border-top:1px solid #ccc;
box-sizing: border-box;
}
/*评论者头像*/
.comment-replay>.comment-img img{
width: 60px;
height: 60px;
border-radius: 5px;
}
/*评论区域*/
.comment-replay>.comment-fill{
grid-column: 2 / 4;
height: 200px;
padding-right: 20px;
}
/*评论填写区*/
.comment-replay>.comment-fill textarea{
width: 100%;
height: 200px;
resize:none;
border-radius: 5px;
box-sizing: border-box;
}
/*填写区鼠标移上特效*/
.comment-replay>.comment-fill textarea:hover{
box-shadow: 0 0 5px #ccc;
}
/*评论按钮*/
.comment-replay>.comment-btn{
grid-column: 1 / span 3;
padding: 10px 0 0;
}
.comment-replay>.comment-btn button{
font-size: 14px;
background-color: #f64c59;
border: none;
color: white;
width: 150px;
height: 40px;
cursor: pointer;
}
/********回复区域**********/
.comment-replay>.reply-info{
display:flex;
flex-flow:column nowrap;
justify-content: space-between;
padding: 10px;
}
.comment-replay>.reply-img{
align-self: center;
}
.comment-replay>.dz{
align-self: center;
}
.comment-replay>.dz i{
color:red;
font-size:1.2rem;
margin-right: 5px;
}
</style>
</head>
<body>
<div class="comment-replay">
<div class="title"><h3>我要评论</h3></div>
<div class="comment-img">
<label for="comment">
<img src="static/images/user.png" alt="">
</label>
</div>
<div class="comment-fill">
<textarea name="" id="comment" ></textarea>
</div>
<div class="comment-btn"><button>发表评论</button></div>
<div class="title"><h3>最新回复</h3></div>
<div class="comment-img reply-img">
<img src="static/images/user.png" alt="">
</div>
<div class="reply-info">
<span>用户昵称</span>
<span>留言内容: php中文网,是一个有温度,有思想的学习平台</span>
<span>2019-12-12 15:34:23发表</span>
</div>
<div class="dz">
<span><i class="iconfont icon-dianzan"></i>回复</span>
</div>
<div class="comment-img reply-img">
<img src="static/images/user.png" alt="">
</div>
<div class="reply-info">
<span>用户昵称</span>
<span>留言内容: php中文网,是一个有温度,有思想的学习平台</span>
<span>2019-12-12 15:34:23发表</span>
</div>
<div class="dz">
<span><i class="iconfont icon-dianzan"></i>回复</span>
</div>
</div>
</body>
</html>
运行效果查看:Grid之旅-评论回复小案例
总结一下:这次是第一次使用Grid布局,还是有很多的不习惯,从布局思路到代码结构;也不知道是不是这样想的,反正效果达到了,希望能看到Grid布局很好的想法和案例代码,目前只能后面通过更多案例来揣摩了^ ^