前端笔记-day13

文章目录

    • 01-体验vw和vh
    • 02-vw适配
      • 02-适配.html
      • demo.less
      • demo.css
    • 03-vw和vh不能混用
      • 03-vw和vh.html
      • demo.less
      • demo.css
    • 04-综合案例-酷我
      • demo.html
      • demo.less
      • base.less
      • demo.css
    • 酷我(标准版)
      • index.html
      • index.less
      • index.css

01-体验vw和vh

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        /* vw和vh是相对视口宽度计算结果,可以直接实现移动端适配效果(rem需要搭配js媒体查询使用) */
        .box{
            /* 
            width: 50vw;
            height: 30vw;
            background-color: pink; 
            */
            width: 50vh;
            height: 30vh;
            background-color: pink;

        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

02-vw适配

02-适配.html

像素转vw、vh:px单位尺寸/ 1/100视口的宽度和高度

<!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="./demo.css">
</head>
<body>
    <div class="box">

    </div>
</body>
</html>

demo.less

.box{
    width: (68 / 3.75vw);
    height: (29 / 3.75vw);
    background-color: pink;
}
.box{
    width: (68 / 6.67vh);
    height: (29 / 6.67vh);
    background-color: pink;
}

demo.css

.box {
  width: 18.13333333vw;
  height: 7.73333333vw;
  background-color: pink;
}
.box {
  width: 10.19490255vh;
  height: 4.34782609vh;
  background-color: pink;
}

在这里插入图片描述
在这里插入图片描述

03-vw和vh不能混用

比例会改变

03-vw和vh.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="./demo.css">
</head>
<body>
    <div class="box"></div>
</body>
</html>

demo.less

.box{
    width: (68 / 3.75vw);
    height: (29 / 6.67vh);
    background-color: pink;
}

demo.css

.box {
  width: 18.13333333vw;
  height: 4.34782609vh;
  background-color: pink;
}

在这里插入图片描述

在这里插入图片描述

04-综合案例-酷我

在这里插入图片描述

demo.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="./css/demo.css">
    <link rel="stylesheet" href="./iconfont/iconfont.css">
</head>
<body>
    <!-- 顶部固定区域 -->
    <div class="top">
        <div class="left">
            <img src="./assets/logo.png" alt="">
            <h3>酷我音乐</h3>
            <p>打开APP收藏下载</p>
        </div>
        <div class="right">
            <a href="#">下载APP</a>
        </div>
    </div>
    <!-- 搜索区域 -->
    <div class="search">
       <div>
            <span class="iconfont icon-sousuo"></span>
            <p>搜索你想听的歌曲</p>
       </div>
    </div>
    <!-- 图片区域 -->
    <div class="pic">
        <ul>
            <li><a href="#"><img src="./assets/banner01.jpeg" alt=""></a></li>
            <!-- <li><a href="#"><img src="./assets/banner02.jpeg" alt=""></a></li> -->
            <!-- <li><a href="#"><img src="./assets/banner03.jpeg" alt=""></a></li> -->
            <!-- <li><a href="#"><img src="./assets/banner01.jpeg" alt=""></a></li> -->

        </ul>
    </div>
    <!-- 排行榜区域 -->
    <div class="rank">
        <div class="head">
            <h2>酷我排行版</h2>
            <a href="#">更多<span class="iconfont icon-right"></span></a>
        </div>
        <div class="body">
            <ul>
                <li>
                    <a href="#"><img src="./assets/icon_rank_hot.png" alt=""></a>
                    <dl>
                        <dt class="dt"><a href="#">酷我热歌榜 <span class="iconfont icon-right"></span></a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                    </dl>
                </li>
                <li>
                    <a href="#"><img src="./assets/icon_rank_new.png" alt=""></a>
                    <dl>
                        <dt class="dt"><a href="#">酷我热歌榜 <span class="iconfont icon-right"></span></a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                    </dl>
                </li>
                <li>
                    <a href="#"><img src="./assets/icon_rank_rise.png" alt=""></a>
                    <dl>
                        <dt class="dt"><a href="#">酷我热歌榜 <span class="iconfont icon-right"></span></a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                        <dt><a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a></dt>
                    </dl>
                </li>
            </ul>
        </div>
    </div>
    <!-- 推荐歌单区域 -->
    <div class="recommend">
        <div class="head">
            <h2>推荐歌单</h2>
            <a href="#">更多<span class="iconfont icon-right"></span></a>
        </div>
        <div class="body">
            <ul>
                <li>
                    <div class="img">
                        <img src="./assets/song01.jpeg" alt="">
                        <div>18.2W</div>
                    </div>
                    <span>合适的变化不大的驾驶舱内的就</span>
                </li>
                <li>
                    <div class="img">
                        <img src="./assets/song01.jpeg" alt="">
                        <div>18.2W</div>
                    </div>
                    <span>合适的变化不大的驾驶舱内的就</span>
                </li>
                <li>
                    <div class="img">
                        <img src="./assets/song01.jpeg" alt="">
                        <div>18.2W</div>
                    </div>
                    <span>合适的变化不大的驾驶舱内的就</span>
                </li>
                <li>
                    <div class="img">
                        <img src="./assets/song01.jpeg" alt="">
                        <div>18.2W</div>
                    </div>
                    <span>合适的变化不大的驾驶舱内的就</span>
                </li>
                <li>
                    <div class="img">
                        <img src="./assets/song01.jpeg" alt="">
                        <div>18.2W</div>
                    </div>
                    <span>合适的变化不大的驾驶舱内的就</span>
                </li>
                <li>
                    <div class="img">
                        <img src="./assets/song01.jpeg" alt="">
                        <div>18.2W</div>
                    </div>
                    <span>合适的变化不大的驾驶舱内的就</span>
                </li>
            </ul>
        </div>
    </div>
    <!-- 底部固定区域 -->
    <div class="bottom">
        <a href="#">
            <img src="./assets/logo.png" alt="">
            <p>安装酷我音乐 发现更多好音乐</p>
            <span class="iconfont icon-right"></span>
        </a>
    </div>
</body>
</html>

demo.less

// out:../css/demo.css
@import "./base.less";
@key:3.75vw;
body{
    background-color: #f9fafb;
}
.top{
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    
    width: 100%;
    height: (50 / @key);
    background-color: #fff;

    padding: 0 (15 / @key);
    .left{
        display: flex;
        flex: 1;
        height: (50 / @key);
        justify-content: left;
        align-items: center;
        img{
            margin-left: (15 /@key);
            margin-right: (5 / @key);
            width: (30 / @key);
            height: (30 / @key); 
        }
        p{
            margin-left: (10 / @key);
            color: grey;
            font-size: (12 / @key);
        }
    }
    .right{
        // justify-content: right;
        display: flex;   
        align-items: center;   
        a{
            display: block;
            text-align: center;
            line-height: (30 / @key);
            width: (80 / @key);
            height: (30 / @key);
            background-color: #ffe31b;
            border-radius: 4vw;
            font-size: (14 / @key);
        }
    }
       
}

.search{
    margin-top: (50 / @key);
    width: 100%;
    height: (52 / @key);
    // background-color: pink;
    padding: (10 / @key) (10 / @key);
    
    div{
        display: flex;
        justify-content: center;
        align-items: center;
        width: (100%);
        height: 100%;
        background-color:#f2f4f5;
        border-radius: 4vw;
        color: #a1a4b3;
        font-size: (14 / @key);
        span{
            font-size: (16 / @key);
        }
    }
}

.pic{
    width: 100%;
    ul{
        width: 100%;    
        padding: 0 (15 / @key) 0 (15 / @key);
        display: flex;
        li{
            height: (108 / @key);
            img{
                width: (345 / @key);
                height: 100%;
                border-radius: 1vw;
            }
            margin-right:(15 / @key);
        }
        animation: move  1s steps(3) infinite;
    }
}
@keyframes move {
    from{
        background-position: 0 0;
    }
    to{
        background-position: (-(345 / @key)*3) 0;
    }  
}
.rank{
    width: 100%;
    height: (420 / @key);
    // background-color: pink;
    padding: 0 (15 / @key);
    .head{
        display: flex;
        width: 100%;
        height: (50 / @key);
        align-items: center;
        a{
            margin-left: auto;
            color: #a1a4b3;
        }
    }
    .body{
        li{
            display: flex;
            img{
                width: (105/@key);
                height: (105/@key);
                margin-right: (20 / @key);
                border-radius: 2vw;
            }
            dl{
                display: block;
                text-align: left;
                width: (215 / @key);
                height: (105 / @key);
                .dt{
                    height: (28/@key);
                    font-size: 3.5vw;
                    a{
                        color: black;
                    }
                }
                dt{
                    height: (21/@key);
                    font-size: 3.2vw;
                    a{
                        color: #a1a4b3;
                    }
                }
            }
        }
    }
}

.recommend{
    width: 100%;
    height: (360 / @key);
    // background-color: pink;
    padding: 0 (15 / @key);
    .head{
        display: flex;
        width: 100%;
        height: (50 / @key);
        align-items: center;
        a{
            margin-left: auto;
            color: #a1a4b3;;
        }
    }
    .body{
        ul{
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
    
            li{
                width: (105/@key);
                height: (145 / @key);
                font-size: 3.7vw;
                margin-bottom: (10 / @key);
                .img{
                    position: relative;
                    width: (105/@key);
                    height: (105/@key);   
                    img{
                        width: 100%;
                        height: 100%;
                        border-radius: 2vw;
                    }
                    div{
                        width: (70 / @key);
                        height: (28 /@key);
                        position: absolute;
                        bottom: 0;
                        left: 0;
                        color: #fff;
                        
                        background-color: rgba(0,0,0,0.8);
                        border-radius: 2vw;
                        text-align: center;
                        line-height:  (28 /@key);;
                    }
                }
            }
        }
    }
}

.bottom{
    position: fixed;
    bottom: (45 / @key);
    left: (15 / @key);
    a{
        width: (345 / @key);
        height: (45 / @key);
        background-color:#fff;
        display: flex;
        align-items: center;
       
        border-radius: 10vw;
        padding: (20 / @key);
        
        img{
           width: (36 / @key); 
           height: (36 / @key);
           margin-right: (10 / @key);
        }
        p{
            flex: 1;
            font-size: (14 / @key);
            // background-color: pink;
        }
        span{
            width: (32/@key);
            height: (32/@key);
            
            text-align: center;
            line-height: (32/@key);
            background-color: #f2f3f5;
            border-radius: 50%;
        }
    }
}

base.less

// out: false
*,
::after,
::before {
  box-sizing: border-box;
}

body,
ul,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
}

body {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    PingFangSC-Regular,
    "PingFang SC",
    "Microsoft YaHei",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif;
  font-size: 14px;
  color: #333;
}

img {
  vertical-align: bottom;
}

ul {
  list-style-type: none;
}

a {
  color: #333;
  text-decoration: none;
  -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
}

demo.css

*,
::after,
::before {
  box-sizing: border-box;
}
body,
ul,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, PingFangSC-Regular, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  color: #333;
}
img {
  vertical-align: bottom;
}
ul {
  list-style-type: none;
}
a {
  color: #333;
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  background-color: #f9fafb;
}
.top {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  height: 13.33333333vw;
  background-color: #fff;
  padding: 0 4vw;
}
.top .left {
  display: flex;
  flex: 1;
  height: 13.33333333vw;
  justify-content: left;
  align-items: center;
}
.top .left img {
  margin-left: 4vw;
  margin-right: 1.33333333vw;
  width: 8vw;
  height: 8vw;
}
.top .left p {
  margin-left: 2.66666667vw;
  color: grey;
  font-size: 3.2vw;
}
.top .right {
  display: flex;
  align-items: center;
}
.top .right a {
  display: block;
  text-align: center;
  line-height: 8vw;
  width: 21.33333333vw;
  height: 8vw;
  background-color: #ffe31b;
  border-radius: 4vw;
  font-size: 3.73333333vw;
}
.search {
  margin-top: 13.33333333vw;
  width: 100%;
  height: 13.86666667vw;
  padding: 2.66666667vw 2.66666667vw;
}
.search div {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: #f2f4f5;
  border-radius: 4vw;
  color: #a1a4b3;
  font-size: 3.73333333vw;
}
.search div span {
  font-size: 4.26666667vw;
}
.pic {
  width: 100%;
}
.pic ul {
  width: 100%;
  padding: 0 4vw 0 4vw;
  display: flex;
  animation: move 1s steps(3) infinite;
}
.pic ul li {
  height: 28.8vw;
  margin-right: 4vw;
}
.pic ul li img {
  width: 92vw;
  height: 100%;
  border-radius: 1vw;
}
@keyframes move {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -276vw 0;
  }
}
.rank {
  width: 100%;
  height: 112vw;
  padding: 0 4vw;
}
.rank .head {
  display: flex;
  width: 100%;
  height: 13.33333333vw;
  align-items: center;
}
.rank .head a {
  margin-left: auto;
  color: #a1a4b3;
}
.rank .body li {
  display: flex;
}
.rank .body li img {
  width: 28vw;
  height: 28vw;
  margin-right: 5.33333333vw;
  border-radius: 2vw;
}
.rank .body li dl {
  display: block;
  text-align: left;
  width: 57.33333333vw;
  height: 28vw;
}
.rank .body li dl .dt {
  height: 7.46666667vw;
  font-size: 3.5vw;
}
.rank .body li dl .dt a {
  color: black;
}
.rank .body li dl dt {
  height: 5.6vw;
  font-size: 3.2vw;
}
.rank .body li dl dt a {
  color: #a1a4b3;
}
.recommend {
  width: 100%;
  height: 96vw;
  padding: 0 4vw;
}
.recommend .head {
  display: flex;
  width: 100%;
  height: 13.33333333vw;
  align-items: center;
}
.recommend .head a {
  margin-left: auto;
  color: #a1a4b3;
}
.recommend .body ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.recommend .body ul li {
  width: 28vw;
  height: 38.66666667vw;
  font-size: 3.7vw;
  margin-bottom: 2.66666667vw;
}
.recommend .body ul li .img {
  position: relative;
  width: 28vw;
  height: 28vw;
}
.recommend .body ul li .img img {
  width: 100%;
  height: 100%;
  border-radius: 2vw;
}
.recommend .body ul li .img div {
  width: 18.66666667vw;
  height: 7.46666667vw;
  position: absolute;
  bottom: 0;
  left: 0;
  color: #fff;
  background-color: rgba(0, 0, 0, 0.8);
  border-radius: 2vw;
  text-align: center;
  line-height: 7.46666667vw;
}
.bottom {
  position: fixed;
  bottom: 12vw;
  left: 4vw;
}
.bottom a {
  width: 92vw;
  height: 12vw;
  background-color: #fff;
  display: flex;
  align-items: center;
  border-radius: 10vw;
  padding: 5.33333333vw;
}
.bottom a img {
  width: 9.6vw;
  height: 9.6vw;
  margin-right: 2.66666667vw;
}
.bottom a p {
  flex: 1;
  font-size: 3.73333333vw;
}
.bottom a span {
  width: 8.53333333vw;
  height: 8.53333333vw;
  text-align: center;
  line-height: 8.53333333vw;
  background-color: #f2f3f5;
  border-radius: 50%;
}

在这里插入图片描述
在这里插入图片描述

酷我(标准版)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>酷我音乐</title>
  <link rel="stylesheet" href="./iconfont/iconfont.css">
  <link rel="stylesheet" href="./css/index.css">
</head>
<body>
  <!-- 头部 -->
  <header>
    <div class="left"></div>
    <a href="#">下载APP</a>
  </header>

  <!-- 搜索 -->
  <div class="search">
    <div class="txt">
      <span class="iconfont icon-sousuo"></span>
      <span>搜索你想听的歌曲</span>
    </div>
  </div>

  <!-- banner -->
  <div class="banner">
    <ul>
      <li><a href="#"><img src="./assets/banner01.jpeg" alt=""></a></li>
    </ul>
  </div>

  <!-- 排行榜 -->
  <div class="list">
    <!-- 标题 -->
    <div class="title">
      <h4>酷我排行榜</h4>
      <a href="#">更多<span class="iconfont icon-right"></span></a>
    </div>
    <!-- 内容 -->
    <div class="content">
      <ul>
        <li>
          <div class="pic"><img src="./assets/icon_rank_hot.png" alt=""></div>
          <div class="txt">
            <a href="#" class="more">酷我热歌榜<span class="iconfont icon-right"></span></a>
            <a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a>
            <a href="#">2.就让这大雨全都落下 - 容祖儿</a>
            <a href="#">3.缺氧 - 轩姨(相信光)</a>
          </div>
        </li>
        <li>
          <div class="pic"><img src="./assets/icon_rank_new.png" alt=""></div>
          <div class="txt">
            <a href="#" class="more">酷我新歌榜<span class="iconfont icon-right"></span></a>
            <a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a>
            <a href="#">2.就让这大雨全都落下 - 容祖儿</a>
            <a href="#">3.缺氧 - 轩姨(相信光)</a>
          </div>
        </li>
        <li>
          <div class="pic"><img src="./assets/icon_rank_rise.png" alt=""></div>
          <div class="txt">
            <a href="#" class="more">酷我飙升榜<span class="iconfont icon-right"></span></a>
            <a href="#">1.樱花树下的约定(完整版) - 旺仔小乔</a>
            <a href="#">2.就让这大雨全都落下 - 容祖儿</a>
            <a href="#">3.缺氧 - 轩姨(相信光)</a>
          </div>
        </li>
      </ul>
    </div>
  </div>

  <!-- 推荐歌单 -->
  <div class="recommend">
    <!-- 标题 -->
    <div class="title">
      <h4>推荐歌单</h4>
      <a href="#">更多<span class="iconfont icon-right"></span></a>
    </div>
    <!-- 内容 -->
    <div class="content">
      <ul>
        <li>
          <div class="pic">
            <img src="./assets/song01.jpeg" alt="">
            <div class="cover">18.2W</div>
          </div>
          <div class="txt">抖音嗨爆DJ!劲爆旋律萦绕双耳</div>
        </li>
        <li>
          <div class="pic">
            <img src="./assets/song02.jpeg" alt="">
            <div class="cover">18.2W</div>
          </div>
          <div class="txt">抖音嗨爆DJ!劲爆旋律萦绕双耳</div>
        </li>
        <li>
          <div class="pic">
            <img src="./assets/song03.jpeg" alt="">
            <div class="cover">18.2W</div>
          </div>
          <div class="txt">抖音嗨爆DJ!劲爆旋律萦绕双耳</div>
        </li>
        <li>
          <div class="pic">
            <img src="./assets/song02.jpeg" alt="">
            <div class="cover">18.2W</div>
          </div>
          <div class="txt">抖音嗨爆DJ!劲爆旋律萦绕双耳</div>
        </li>
        <li>
          <div class="pic">
            <img src="./assets/song03.jpeg" alt="">
            <div class="cover">18.2W</div>
          </div>
          <div class="txt">抖音嗨爆DJ!劲爆旋律萦绕双耳</div>
        </li>
        <li>
          <div class="pic">
            <img src="./assets/song01.jpeg" alt="">
            <div class="cover">18.2W</div>
          </div>
          <div class="txt">抖音嗨爆DJ!劲爆旋律萦绕双耳</div>
        </li>
      </ul>
    </div>
  </div>

  <!-- 安装,下载 -->
  <div class="download">
    <img src="./assets/logo.png" alt="">
    <p>安装酷我音乐 发现更多好音乐</p>
    <span class="iconfont icon-right"></span>
  </div>
</body>
</html>

index.less

// out: ../css/

@import "./base";

body {
  background-color: #f9fafb;
}

@vw:3.75vw;

// 头部
header {
  position: fixed;
  left: 0;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 (15 / @vw);
  // 固定定位的盒子,宽度靠内容撑开,希望宽度100%
  width: 100%;
  height: (50 / @vw);
  background-color: #fff;
  // 左边
  .left {
    width: (235 / @vw);
    height: (50 / @vw);
    background-image: url(../assets/head.png);
    background-size: contain;
    background-repeat: no-repeat;
  }
  a {
    width: (80 / @vw);
    height: (30 / @vw);
    background-color: #ffe31b;
    border-radius: (15 / @vw);
    text-align: center;
    line-height: (30 / @vw);
    font-size: (14 / @vw);
  }
}

// 搜索
.search {
  // 头部固定定位,脱标不占位,搜索去最顶了,加上外边距挤下来即可
  margin-top: (50 / @vw);
  padding: (10 / @vw) (15 / @vw);
  height: (52 / @vw);
  // background-color: pink;
  .txt {
    height: (32 / @vw);
    background-color: #f2f4f5;
    border-radius: (16 / @vw);
    text-align: center;
    line-height: (32 / @vw);
    color: #a1a4b3;
    font-size: (14 / @vw);
    .iconfont {
      font-size: (16 / @vw);
    }
  }
}

// banner
.banner {
  padding: 0 (15 / @vw);
  height: (108 / @vw);
  // background-color: pink;
  ul {
    li {
      width: (345 / @vw);
      height: (108 / @vw);
      img {
        width: 100%;
        height: 100%;
        // cover完全覆盖
        // 缩放img,图片比例跟父级盒子比例不同,避免图片挤压变形
        object-fit: cover;
        border-radius: (5 / @vw);
      }
    }
  }
}

// 排行榜
.list {
  margin-top: (20 / @vw);
  padding: 0 (15 / @vw);
  li {
    display: flex;
    margin-bottom: (16 / @vw);
    height: (105 / @vw);
    background-color: #fff;
    border-radius: (10 / @vw);
    .pic {
      margin-right: (20 / @vw);
      img {
        width: (105 / @vw);
        height: (105 / @vw);
        border-radius: (10 / @vw);
      }
    }
    .txt {
      a {
        display: block;
        font-size: (12 / @vw);
        color: #a1a4b3;
        line-height: 1.8;
      }

      .more {
        font-size: (14 / @vw);
        color: #333;
        .iconfont {
          font-size: (16 / @vw);
        }
      }
    }
  }
}

// 标题 → 公共样式
.title {
  display: flex;
  justify-content: space-between;
  margin-bottom: (16 / @vw);
  line-height: (25 / @vw);
  h4 {
    font-size: (20 / @vw);
  }
  a {
    font-size: (12 / @vw);
    color: #a1a4b3;
  }
}

// 推荐歌单
.recommend {
  padding: 0 (15 / @vw);
  ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    li {
      margin-bottom: (16 / @vw);
      width: (105 / @vw);
      height: (143 / @vw);
      // background-color: pink;
  // 图片
  .pic {
    position: relative;
    width: (105 / @vw);
    height: (105 / @vw);
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: (10 / @vw);
    }
    .cover {
      position: absolute;
      left: 0;
      bottom: 0;
      width: (70 / @vw);
      height: (28 / @vw);
      background-color: rgba(0,0,0,0.8);
      border-radius: 0 (10 / @vw) 0 (10 / @vw);
      text-align: center;
      line-height: (28 / @vw);
      color: #fff;
      font-size: (14 / @vw);
    }
      }
      // 文字
      .txt {
        font-size: (14 / @vw);
      }
    }
  }
}

// 下载
.download {
  position: fixed;
  left: (15 / @vw);
  bottom: (30 / @vw);

  display: flex;
  align-items: center;
  padding: 0 (10 / @vw) 0 (15 / @vw);
  width: (345 / @vw);
  height: (45 / @vw);
  background-color: #fff;
  border-radius: (22 / @vw);
  img {
    margin-right: (10 / @vw);
    width: (36 / @vw);
    height: (36 / @vw);
  }
  p {
    flex: 1;
    font-size: (14 / @vw);
  }
  span {
    width: (32 / @vw);
    height: (32 / @vw);
    background-color: #f2f3f5;
    border-radius: 50%;
    text-align: center;
    line-height: (32 / @vw);
    font-size: (16 / @vw);
  }
}

index.css

*,
::after,
::before {
  box-sizing: border-box;
}
body,
ul,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, PingFangSC-Regular, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  color: #333;
}
img {
  vertical-align: bottom;
}
ul {
  list-style-type: none;
}
a {
  color: #333;
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  background-color: #f9fafb;
}
header {
  position: fixed;
  left: 0;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4vw;
  width: 100%;
  height: 13.33333333vw;
  background-color: #fff;
}
header .left {
  width: 62.66666667vw;
  height: 13.33333333vw;
  background-image: url(../assets/head.png);
  background-size: contain;
  background-repeat: no-repeat;
}
header a {
  width: 21.33333333vw;
  height: 8vw;
  background-color: #ffe31b;
  border-radius: 4vw;
  text-align: center;
  line-height: 8vw;
  font-size: 3.73333333vw;
}
.search {
  margin-top: 13.33333333vw;
  padding: 2.66666667vw 4vw;
  height: 13.86666667vw;
}
.search .txt {
  height: 8.53333333vw;
  background-color: #f2f4f5;
  border-radius: 4.26666667vw;
  text-align: center;
  line-height: 8.53333333vw;
  color: #a1a4b3;
  font-size: 3.73333333vw;
}
.search .txt .iconfont {
  font-size: 4.26666667vw;
}
.banner {
  padding: 0 4vw;
  height: 28.8vw;
}
.banner ul li {
  width: 92vw;
  height: 28.8vw;
}
.banner ul li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1.33333333vw;
}
.list {
  margin-top: 5.33333333vw;
  padding: 0 4vw;
}
.list li {
  display: flex;
  margin-bottom: 4.26666667vw;
  height: 28vw;
  background-color: #fff;
  border-radius: 2.66666667vw;
}
.list li .pic {
  margin-right: 5.33333333vw;
}
.list li .pic img {
  width: 28vw;
  height: 28vw;
  border-radius: 2.66666667vw;
}
.list li .txt a {
  display: block;
  font-size: 3.2vw;
  color: #a1a4b3;
  line-height: 1.8;
}
.list li .txt .more {
  font-size: 3.73333333vw;
  color: #333;
}
.list li .txt .more .iconfont {
  font-size: 4.26666667vw;
}
.title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4.26666667vw;
  line-height: 6.66666667vw;
}
.title h4 {
  font-size: 5.33333333vw;
}
.title a {
  font-size: 3.2vw;
  color: #a1a4b3;
}
.recommend {
  padding: 0 4vw;
}
.recommend ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.recommend ul li {
  margin-bottom: 4.26666667vw;
  width: 28vw;
  height: 38.13333333vw;
}
.recommend ul li .pic {
  position: relative;
  width: 28vw;
  height: 28vw;
}
.recommend ul li .pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 2.66666667vw;
}
.recommend ul li .pic .cover {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 18.66666667vw;
  height: 7.46666667vw;
  background-color: rgba(0, 0, 0, 0.8);
  border-radius: 0 2.66666667vw 0 2.66666667vw;
  text-align: center;
  line-height: 7.46666667vw;
  color: #fff;
  font-size: 3.73333333vw;
}
.recommend ul li .txt {
  font-size: 3.73333333vw;
}
.download {
  position: fixed;
  left: 4vw;
  bottom: 8vw;
  display: flex;
  align-items: center;
  padding: 0 2.66666667vw 0 4vw;
  width: 92vw;
  height: 12vw;
  background-color: #fff;
  border-radius: 5.86666667vw;
}
.download img {
  margin-right: 2.66666667vw;
  width: 9.6vw;
  height: 9.6vw;
}
.download p {
  flex: 1;
  font-size: 3.73333333vw;
}
.download span {
  width: 8.53333333vw;
  height: 8.53333333vw;
  background-color: #f2f3f5;
  border-radius: 50%;
  text-align: center;
  line-height: 8.53333333vw;
  font-size: 4.26666667vw;
}

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/785856.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32的 DMA(直接存储器访问) 详解

STM32的DMA&#xff08;Direct Memory Access&#xff0c;直接存储器存取&#xff09;是一种在单片机中用于高效实现数据传输的技术。它允许外设设备直接访问RAM&#xff0c;不需要CPU的干预&#xff0c;从而释放CPU资源&#xff0c;提高CPU工作效率&#xff0c;本文基于STM32F…

【CSS01】CSS概述,使用样式的必要性,CSS语法及选择器

文章目录 一、什么是样式二、使用样式的必要性三、使用样式的几种方式四、CSS基本语法&#xff1a;五、CSS的注释六、CSS选择器——重点相关单词 一、什么是样式 概念&#xff1a; Cascade [kˈskeɪd] Style Sheet [ʃiːt] 级联样式单/表&#xff0c;层叠样式表 CSS有化腐…

【Linux进阶】文件系统2——MBR和GPT

1.磁盘的分区 因为如果你的磁盘被划分成两个分区&#xff0c;那么每个分区的设备文件名是什么&#xff1f; 在了解这个问题之前&#xff0c;我们先来复习一下磁盘的组成&#xff0c;因为现今磁盘的划分与它物理的组成很有关系。 我们谈过磁盘主要由碟片、机械手臂、磁头与主轴马…

安卓应用开发学习:腾讯地图SDK应用改进,实现定位、搜索、路线规划功能集成

一、引言 我的上一篇学习日志《安卓应用开发学习&#xff1a;通过腾讯地图SDK实现定位功能》记录了利用腾讯地图SDK实现手机定位功能&#xff0c;并能获取地图中心点的经纬度信息。这之后的几天里&#xff0c;我对《Android App 开发进阶与项目实战》一书第九章的内容深入解读…

js实现移动蒙版层

移动蒙版层 可在整个页面拖动方块&#xff0c;但方块不能超出页面 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

企业可持续发展新篇章:社会责任管理体系认证的力量与魅力

在当今这个全球化与可持续发展并重的时代&#xff0c;企业已不再仅仅追求经济效益的最大化&#xff0c;而是日益重视其社会角色与责任。随着消费者、投资者及社会各界对企业行为期望的不断提升&#xff0c;社会责任管理体系认证正逐渐成为衡量企业综合竞争力的关键指标之一。这…

代码随想录(day2)双指针法(快慢指针法)

题目&#xff1a; 代码&#xff1a; class Solution(object):def removeElement(self, nums, val):fast0slow0sizelen(nums)while fast<size:if nums[fast]!val:nums[slow]nums[fast]slow1fast1return slow 需要注意的是&#xff0c;只要涉及到使用数组&#xff0c;那么就…

pycharm使用micropython

一、打开设置 2、搜索micropython、安装、重启 3、第5步需要设置成你插的电脑USB口&#xff0c;一个一个试 4、 5、 6、OK

快递柜也上网?你身边的物联网应用

快递柜相信大家都不陌生&#xff0c;如今在各类家庭小区、写字楼、工业园区&#xff0c;各类快递柜已经融入大家的日常&#xff0c;为大家的生活带来便利。大家已经习惯指尖交互就能一键取件&#xff0c;这么便捷的体验背后其实是有一套系统运作机制在支撑的&#xff0c;今天和…

下半年交火点:智驾全国都能开,智舱多模态大模型

“你猜一猜我现在参加什么样的活动呢&#xff1f;” “你参加的是WAIC&#xff0c;就是那个人工智能的大Party&#xff0c;超多科技高手都在这……” “你帮我介绍一下这本书吧。” “这书叫《反脆弱&#xff0c;从不确定性中获益》&#xff0c;讲的是怎么在混乱里找机会&am…

Apache配置与应用(优化apache)

Apache配置解析&#xff08;配置优化&#xff09; Apache链接保持 KeepAlive&#xff1a;决定是否打开连接保持功能&#xff0c;后面接 OFF 表示关闭&#xff0c;接 ON 表示打开 KeepAliveTimeout&#xff1a;表示一次连接多次请求之间的最大间隔时间&#xff0c;即两次请求之间…

Databend 开源周报第 152 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend。 支持内置 UDFs …

wordpress外贸建站公司案例英文模板

Indirect Trade WP外贸网站模板 WordPress Indirect Trade外贸网站模板&#xff0c;建外贸独立站用wordpress模板&#xff0c;快速搭建十分便捷。 衣物清洁wordpress独立站模板 洗衣粉、洗衣液、衣物柔顺剂、干洗剂、衣领净、洗衣皂等衣物清洁wordpress独立站模板。 家具wordpr…

《无所不能的JavaScript · prototype 原型链》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; 近期刚转战 CSDN&#xff0c;会严格把控文章质量&#xff0c;绝不滥竽充数&#xff0c;欢迎多多交流。&am…

python集成Bartender实现二维码打印

本文摘录于&#xff1a;https://blog.csdn.net/mynameisJW/article/details/105500773只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 这里上传我优化了一下的代码:https://download.csdn.net/download/chengdong1314/89522026 我这里弄…

Web3时代的数字身份认证:安全性与隐私保护探讨

随着区块链技术的发展和普及&#xff0c;数字身份认证正逐步成为Web3时代的关键基础设施。传统的身份认证系统存在着中心化数据存储、数据泄露和身份盗用等风险&#xff0c;而基于区块链的数字身份认证则通过去中心化、加密和分布式存储等特性&#xff0c;重新定义了安全性和隐…

Alpha 3D扫描仪

3D视觉。就这么简单。 用于机器视觉任务的工业3D扫仪 规格表

Nginx理论篇与相关网络协议

Nginx是什么&#xff1f; Nginx是一款由C语言编写的高性能、轻量级的web服务器&#xff0c;一个线程能处理多个请求&#xff0c;支持万级并发。 优势&#xff1a;I/O多路复用。 I/O是什么&#xff1f; I指的是输入&#xff08;Input&#xff09;,O是指输出&#xff08;Outp…

springboot事故车辆与违章车辆跟踪系统-计算机毕业设计源码03863

springboot事故车辆与违章车辆跟踪系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。…

品牌故事的智能叙述者:Kompas.ai如何塑造品牌叙事

在品牌的世界里&#xff0c;故事是连接消费者与品牌灵魂的桥梁。一个引人入胜的品牌故事不仅能够建立品牌身份&#xff0c;还能够在消费者心中建立起深厚的情感联系。Kompas.ai&#xff0c;作为一款利用人工智能技术的品牌叙事工具&#xff0c;正在帮助品牌创造和传播引人入胜的…