移动web第6天-----vw和vh以及bilibili案例

认识VW和VH

vw和vh是相对单位,相对于视口的尺寸计算结果。
vw:viewport width
1vw = 1/100视口宽度
vh:viewport height
1vh = 1/100视口高度
使用vw和vh可以快速实现等比缩放的网页效果。
vw和vh相对于rem适配的优点:
不需要引入任何js文件,也不需要在vscode配置文字大小。
注意:vw和vh不会同时去用,一般工作中的布局使用vw即可(因为移动端的设计图是基于视口宽度375px去设计的)

使用px to vw插件即可快速把px转换为vw单位(ctrl+a全选,再alt+a转换即可)

注意:使用px to vw插件的时候记得把px to rem插件禁用了,不然会快捷键冲突。

案例:bilibili

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>bilibili课堂版</title>
    <link rel="stylesheet" href="./fonts/iconfont.css">
    <link rel="stylesheet" href="./css/index.css">
</head>
<body>
    <header>
        <!-- 快捷导航部分 -->
        <div class="shortcut">
            <!-- logo -->
            <h1>
                <a href="#">
                    <i class="iconfont Navbar_logo"></i>
                </a>
            </h1>
            <!-- 右边部分 -->
            <div class="right">
                <a href="#">
                    <i class="iconfont ic_search_tab search"></i>
                </a>

                <a href="#">
                    <img src="./images/login.png" class="login" alt="">
                </a>

                <a href="#">
                    <img src="./images/download.png" alt="" class="download">
                </a>
            </div>
        </div>

        <!-- 导航栏部分 -->
        <div class="nav">
            <ul>
                <li class="active">首页</li>
                <li>动画</li>
                <li>番剧</li>
                <li>国创</li>
                <li>音乐</li>
            </ul>

            <i class="iconfont general_pulldown_s"></i>
        </div>
    </header>

    <!-- 视频列表 -->
    <div class="vedio_list">
        <ul>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="top">
                        <img src="./images/1.jpg" alt="">
                        <!-- 遮罩层 -->
                        <div class="mask">
                            <div class="play">
                                <i class="iconfont icon_shipin_bofangshu"></i>36.9万
                            </div>
                            <div class="review">
                                <i class="iconfont icon_shipin_danmushu"></i>3347
                            </div>
                        </div>
                    </div>
                    <p class="ellipsis-2">打破次元壁!蜡笔小新家的爆款拉面 现实中真的会好吃吗??打破次元壁!</p>
                </a>
            </li>
        </ul>
    </div>

    <!-- 查看更多 -->
    <div class="more">
        去bilibili App看更多
    </div>

    <!-- 底部模块 -->
    <footer>
        <p>信息网络传播视听节目许可证:0910417</p>
        <p>网络文化经营许可证 沪网文【2019】3804-274号</p>
        <p>广播电视节目制作经营许可证:(沪)字第01248号</p>
        <p>增值电信业务经营许可证 沪B2-20100043</p>
    </footer>

    <!-- 打开app  -->
    <div class="open">
        <i class="iconfont Navbar_logo"></i>
        打开App,看你感兴趣的视频
    </div>
</body>
</html>

CSS代码:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: Helvetica Neue, Tahoma, Arial, PingFangSC-Regular, Hiragino Sans GB, Microsoft Yahei, sans-serif;
}
a {
  display: block;
  color: #333;
  text-decoration: none;
}
img {
  vertical-align: middle;
  width: 100%;
  height: 100%;
}
ul {
  list-style: none;
}
.ellipsis-2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
body {
  padding-top: 21.867vw;
}
header {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 21.867vw;
  border-bottom: 0.267vw solid #eee;
  z-index: 99;
  background-color: #fff;
}
header .shortcut {
  display: flex;
  justify-content: space-between;
  height: 11.733vw;
  padding: 0 3.2vw 0 4.8vw;
}
header .shortcut h1 {
  font-weight: 400;
}
header .shortcut h1 i {
  color: #fb7299;
  font-size: 7.467vw;
}
header .shortcut .right {
  display: flex;
  align-items: center;
  width: 44.533vw;
  justify-content: space-between;
}
header .shortcut .right .search {
  font-size: 5.76vw;
  color: #ccc;
}
header .shortcut .right .login {
  width: 6.4vw;
  height: 6.4vw;
}
header .shortcut .right .download {
  width: 19.2vw;
  height: 6.4vw;
}
header .nav {
  display: flex;
  justify-content: space-between;
}
header .nav ul {
  display: flex;
}
header .nav ul li {
  font-size: 3.733vw;
  height: 9.867vw;
  line-height: 9.867vw;
  margin: 0 4.267vw;
}
header .nav ul .active {
  color: #fb7299;
  border-bottom: 0.267vw solid #fb7299;
}
header .nav i {
  width: 10.667vw;
  height: 10.667vw;
  font-size: 5.333vw;
  line-height: 10.667vw;
  text-align: center;
  color: #ccc;
}
.vedio_list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
}
.vedio_list ul li {
  margin-top: 2.667vw;
}
.vedio_list ul li a {
  width: 46.133vw;
  height: 35.2vw;
}
.vedio_list ul li a .top {
  position: relative;
}
.vedio_list ul li a .top .mask {
  display: flex;
  justify-content: space-between;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4.995vw;
  color: #fff;
  font-size: 3.2vw;
  padding: 0 1.067vw;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.85), transparent);
}
.vedio_list ul li a .top .mask i {
  vertical-align: middle;
  margin-right: 1.067vw;
}
.vedio_list ul li a p {
  font-size: 3.2vw;
  color: #333;
  margin-top: 0.8vw;
}
.more {
  height: 16vw;
  line-height: 16vw;
  color: #999;
  font-size: 3.2vw;
  text-align: center;
}
footer {
  background-color: #f4f4f4;
  padding: 2.667vw 0;
}
footer p {
  height: 8vw;
  line-height: 8vw;
  font-size: 3.2vw;
  color: #999;
  text-align: center;
}
.open {
  position: fixed;
  bottom: 5.333vw;
  left: 3.333vw;
  z-index: 99;
  width: 93.333vw;
  height: 10.133vw;
  background-color: #fb7299;
  border-radius: 5.067vw;
  text-align: center;
  line-height: 10.133vw;
  color: #fff;
  font-size: 3.733vw;
}
.open i {
  margin-right: 2.667vw;
}

效果图:
bilibili案例
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容