实战!小白切图,手把手教你完成音乐播放器页面

简介: 实战!小白切图,手把手教你完成音乐播放器页面

前言

今天我们就来手把手教你如何用代码实现音乐播放器页面。如果我们想要找到一个好工作的话,只会切图是不够的,但是不能不会切图,切图虽然基础,但是是一定要学会的。

首先,我们先来看看今天的任务图

image.png

先来给大家看看我们实现的效果吧:

image.png

架构规划

首先,我们先来写html部分,我们需要先确定任务图的结构,如果大家看了我以前的文章的话,一定会想到用BEM命名法

想要具体了解BEM命名的小伙伴们可以看我以前的文章  点击这里BEM命名规范

我们将整张页面看成music,然后我们观察一下,发现可以将整张页面分为上下两部分,music__head,music__body

image.png

接下来我们对music__head进行划分,将箭头和正在播放分为music__head-title,背景图片为bg,因���此时图片只有一张,尽管我们不用BEM规范,也不会出问题

接下来我们来划分music__body,我们观察一下,可以将body分为五个部分

image.png

  • music-pic
  • music-desc
  • music-line
  • music-play
  • music-model

大的框架我们已经分完了,然后框内的小元素大家自行添加进去就行了

这里附上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_4310349_zr9mgjtohx.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-zuojiantou"></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>

这里给大家推荐一个网站,这个网站上有各种各样的小图标,当我们做页面时,很多小图标都可以从上面获取[:iconfont-阿里巴巴矢量图标库]

image.png

在我们这个例子中,如上框出的图标都是在以上网站中获得,十分的方便。教你们如何获得想要的图片,比如我们想要获得左箭头,就直接搜索

image.png

选择我们想要的箭头,加入购物车

image.png

点击添加至项目

image.png

如果你没项目的话,点击加入项目旁的+号,添加项目

image.png

选择Font class ,点击复制代码

image.png

接下来,我们在html的head中加入css样式,如下

<!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_4310349_zr9mgjtohx.css">
    //href 后输入刚刚复制的代码
</head>

然后我们在music__head中将此类名写进去,如下

image.png

image.png

这样箭头就可以显示出来了

接下来我们来看看CSS怎么写

CSS

首先,先附上代码

/* 通用样式,清除所有元素的默认外边距和内边距 */
* {
    margin: 0;
    padding: 0;
}
/* 页面头部样式 */
.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用于计算函数,设置高度为用户屏幕高度减去130px */
    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;
}
/* 通用样式,清除所有元素的默认外边距和内边距 */
* {
    margin: 0;
    padding: 0;
}

这个规则适用于所有HTML元素,将它们的外边距和内边距设置为零,以清除页面中可能存在的默认间距。

/* 页面头部样式 */
.music__head {
    position: relative;
    height: 303px;
    overflow: auto; /* 设置为BFC容器,清除浮动 */
}

这个规则定义了页面头部的样式。music__head类的元素被定位为相对定位,高度设置为303像素,并启用了垂直溢出自动滚动。此处还提到了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; /* 将虚化背景放到最下面 */
}

这个规则定义了页面头部背景的样式。.bgmusic__head元素内部的子元素。它设置了背景图片、大小、模糊效果以及它的位置。虚化背景被放置在堆叠顺序的底部(z-index:-1)。

/* 页面标题样式 */
.music__head--title {
    margin: 45px 0;
    color: rgb(1, 0, 0);
    padding: 0 40px;
}

这个规则定义了页面标题的样式,它具有music__head--title类。标题具有45像素的上外边距,文本颜色设置为红色,左右内边距为40像素。

/* 返回按钮样式 */
.back {
    float: left;
    width: 17px;
    height: 31px;
}

这个规则定义了返回按钮的样式,它浮动到左侧,具有17像素的宽度和31像素的高度。

/* 标题样式 */
.title {
    text-align: center;
    font-size: 12px;
}

这个规则定义了标题的样式,将文本居中对齐,字体大小设置为12像素。

/* 主体部分样式 */
.music__body {
    width: 100%;
    height: calc(100vh - 130px);
    background-color: aliceblue;
    position: absolute;
    top: 130px;
    border-top-right-radius: 32px;
    border-top-left-radius: 32px;
}

这个规则定义了主体部分的样式,包括宽度、高度(使用calc计算),背景颜色、位置和上部的圆角边框。

今天的内容就到这啦,如果你觉得小编写的还不错的话,或者对你有所启发,请给小编一个辛苦的赞吧

相关文章
|
6月前
|
前端开发 JavaScript iOS开发
精选11款炫酷的前端动画特效分享(附在线演示)
分享11款非常不错炫酷的前端特效源码 其中包含css动画特效、js原生特效、svg特效等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源
|
JavaScript 程序员 开发者
Notion客户端不好看?手把手教你把它变好看。
Notion客户端不好看?手把手教你把它变好看。
|
6月前
|
前端开发
前端知识笔记(二十)———简易弹窗制作
前端知识笔记(二十)———简易弹窗制作
70 0
|
存储 数据库
ivx简单实战,多图新手小白速成(1:签到系统)
ivx简单实战,多图新手小白速成(1:签到系统)
211 0
|
前端开发 算法 JavaScript
手把手教你制作简易计算器
手把手教你制作简易计算器
94 0
|
开发者 C++
微信不够好看的地方,只能自己来动手了 | 公众号卡片美化
微信不够好看的地方,只能自己来动手了 | 公众号卡片美化
微信小游戏无代码开发视频教程合集3
嗨!大家好,我是小蚂蚁。 昨天给大家整理了一份图文教程的合集资料,有同学问了,有没有视频学习资料呀!俺就喜欢喜欢看视!这个咱也有。这篇给大家整理一下今年录制的几个视频的合集,建议收藏,假期安排时间,好好学习。悄悄的做个游戏,然后惊艳很多人。 这些视频都是免费的,强烈建议收藏,另外如果对你有帮助的话,欢迎点赞,分享鼓励小蚂蚁继续创作。
127 0
|
开发工具
微信小游戏无代码开发视频教程合集1
昨天给大家整理了一份图文的合集资料,有同学问了,有没有视频学习资料呀!俺就喜欢喜欢看视频学呢!这个咱也有。这篇给大家整理一下今年录制的几个视频教程的合集,建议收藏,假期安排时间,好好学习。悄悄的做个游戏,然后惊艳很多人。 强烈建议收藏,另外如果视频对你有帮助的话,欢迎点赞,分享鼓励小蚂蚁继续创作。
129 0
微信小游戏无代码开发视频教程合集2
嗨!大家好,我是小蚂蚁。 有同学问了,有没有视频学习资料呀!俺就喜欢喜欢看视频学呢!这个咱也有。这篇给大家整理一下今年录制的几个视频教程的合集,建议收藏,假期安排时间,好好学习。悄悄的做个游戏,然后惊艳很多人。 强烈建议收藏,另外如果视频对你有帮助的话,欢迎点赞,分享鼓励小蚂蚁继续创作。
93 0
|
缓存 小程序 数据库
微信小游戏开发系列教程
嗨!大家好,我是小蚂蚁。这里整理了一下公众号中写过的一些教程文章,它们已经帮助过很多人做出了自己的第一款游戏,希望还能够继续帮助更多想要做游戏的朋友,进入游戏开发世界的大门。
482 0