序言
我们首先来看今天的任务,是要完成一个音乐播放器的页面
这是任务图
这是效果图
根据我们文章前面讲的BEM命名法
,我们首先就可以将这张图片先规划一下
接着依次为他们进行BEM命名,首先我们整个页面就是music,最顶部的返回按钮和正在播放则是music__head,以下则是music__body,接着先附上我们的代码,让我们跟着通俗易懂的代码一起对里面的元素进行命名。
HTML部分
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://at.alicdn.com/t/c/font_3975984_1yj5cbfx1k8.css">
</head>
<body>
<div class="music">
<div class="music__head">
<div class="bg"></div>
<div class="music__head--title">
<div class="back">
<i class="iconfont icon-fanhui"></i>
</div>
<div class="title">正在播放</div>
</div>
</div>
<div class="music__body">
<div class="body-pic" >
<img src="https://i0.hdslb.com/bfs/archive/c5e0392db23dada41b8ff5e052881abd7bb59d60.jpg">
</div>
<div class="body-desc">
<p class="name">说好不哭</p>
<p class="author">周杰伦</p>
</div>
<div class="body-line">
<div class="line-left"></div>
<div class="line-right"></div>
<div class="op-left">02:41</div>
<div class="ed-right">04:41</div>
</div>
<div class="body-play">
<div class="suijibofang">
<i class="iconfont icon-suijibofang"></i>
</div>
<div class="shangyiqu">
<i class="iconfont icon-shangyigeshangyiqu"></i>
</div>
<div class="bofang">
<i class="iconfont icon-bofang1"></i>
</div>
<div class="xiayiqu">
<i class="iconfont icon-xiayigexiayiqu"></i>
</div>
<div class="xihuan">
<i class="iconfont icon-xihuan1"></i>
</div>
</div>
<div class="body-model">
<div class="hq">
<i class="iconfont icon-yinzhi-sq"></i>
</div>
<div class="sq">
<i class="iconfont icon-yinzhi-hq"></i>
</div>
</div>
</div>
</div>
</body>
</html>
首先是我们的HEAD部分,这里我们需要用到一个iconfont网站来获取返回图标
- 首先点开网站然后搜索我们需要的图标
2. 接着选一个你喜欢然后添加到购物车
- 在你的购物车中将图表加入到一个项目中
4.来到项目中选择编码格式然后更新代码
5.更新代码后点击复制代码并粘贴到HTML文件中
html
<head>
<link rel="stylesheet" href="你复制的代码"> <!--如果没有效果在你复制的代码之前加一个https:-->
</head>
- 点击你选择图标 复制代码
7.添加图标到HTML中
html
<div class="music__head--title">
<div class="back">
<i class="iconfont icon-fanhui"></i>
</div>
<div class="title">正在播放</div>
</div>
我们每次向项目中添加新的图标时,我们项目的代码都会更新,所以我们可以一次性将所需的图标一次性添加完后更新代码然后复制,而且这些图标都是用代码写的并不是img格式之类,我们还可以对其样式进行更改或者直接在图标上的选择找到✏进行更改。
CSS部分
css
*{
margin: 0;padding: 0; /*将页面body自带的边距清除*/
}
.music__head{
position: relative;
height: 303px;
overflow: auto;/*设置为BFC容器,清除浮动*/
}
.music__head .bg{
width: 100%;
height: 100%;
background: url(https://i0.hdslb.com/bfs/archive/c5e0392db23dada41b8ff5e052881abd7bb59d60.jpg);
background-size: 100% 100%;
filter: blur(7px);/*设置背景虚化*/
position: absolute;
z-index: -1;/*将虚化背景放到最下面*/
}
.music__head--title{
margin: 45px 0;
color: rgb(1, 0, 0);
padding: 0 40px;
}
.back{
float: left;
width: 17px;
height: 31px;
}
.title{
text-align: center;
font-size: 12px;
}
.music__body{
width: 100%;
/* calc用于计算函数 100vh用户屏幕高度*/
height: calc(100vh - 130px);
background-color: aliceblue;
position: absolute;
top: 130px;
border-top-right-radius: 32px;/*设置右上圆角*/
border-top-left-radius: 32px;/*设置左上圆角*/
}
.body-pic{
width: 257px;
height: 283px;
overflow: hidden; /*超出则隐藏, 防止图片变形*/
display: flex;
justify-content: center;
align-items: center;
border-radius: 40px;
position: absolute;
left: 50%;
transform: translateX(-50%);
top: -39px;
box-shadow: 0 0 20px #fff;
}
.body-pic img{
height: 100%;
}
.body-desc{
margin-top: 280px;
text-align: center;
}
.body-desc .name{
font-size: 21px;
margin-bottom: 2px;
}
.line-right{
position: absolute;
width: 277px;
height: 0;
border: 2px solid #C6C6C6;
margin-top: 44px;
margin-left: 50px;
}
.line-left{
position: absolute;
height: 0;
margin-left: 50px;
margin-top: 43px;
width: 118px;
border: 3px solid red;
z-index: 1;
}
.op-left{
position: absolute;
width: 20px;
height: 6px;
font-size: 8px;
font-weight: bold;
font-family: SourceHanSansCN;
color: #9EA0AD;
line-height: 26px;
margin-top: 45px;
margin-left: 50px;
}
.ed-right{
position: absolute;
width: 20px;
height: 6px;
font-size: 8px;
font-family: SourceHanSansCN;
font-weight: bold;
color: #9EA0AD;
line-height: 26px;
margin-top: 45px;
margin-left: 315px;
}
总结
在了解了BEM命名法后,我们感觉到切图轻松了许多,相比之前一上来就写代码,我们现在学会先给图片分块分级,先把框架写出来然后再对CSS结构编写,在公司里面如果有切图任务的话我们首先会在一个团队群里得到图片的各种信息,然后我们需要做的就是对图片的实现,我们在过程中不用一下把HTML完全写完,而是写一部分然后检查,这样就省去了最后发现一处错误,修改全部的麻烦。那么我们今天的分享就到此结束啦,如果你感觉有收获的话给作者的辛苦点个赞吧。
感谢大家的阅读,点点赞吧♥
如果想了解更多有用的干货,点赞+收藏第一时间获取有用的小知识
开源Git仓库: gitee.com/cheng-bingw...