本案例构建一个视频分享网站“神影视频”,使用 Bootstrap 4 搭建首页、列表、详情三大区域,重点练习轮播组件、徽章按钮、彩色数字排名、卡片网格、列表组排行等组件的组合应用。
一、案例概述
1.1 业务背景
视频网站的核心是让用户快速发现想看的内容。本案例通过头部搜索 + 轮播推荐 + 分类筛选 + 视频网格 + 热门排行的布局,把首页设计成”信息密度高但不拥挤”的浏览体验。
1.2 涉及知识点
| 知识点 |
在本案例中的作用 |
轮播 .carousel |
顶部精选视频 |
徽章 .btn 配色 |
分类筛选标签 |
卡片 .card-header |
视频分类标题 |
列表组 .list-group |
热门排行 |
彩色背景 .bg-* |
数字排名徽章 |
| transform scale |
鼠标悬停图片放大 |
警告框 .alert |
网站公告 |
旋转加载 .spinner-border |
Loading 状态 |
1.3 页面结构
1 2 3 4 5 6
| 神影视频 ├── 头部(Logo + 搜索 + 热搜词 + 主导航 + 公告) ├── 轮播(精选视频 3 张) ├── 分类列表(按热播 / 类型 / 地区 / 基因) ├── 视频内容(最新电影 + 最新电视剧 + 热门排行侧边栏) └── 脚注(关于我们 / 联系我们 / 友情链接)
|
二、实现步骤拆解
2.1 头部内容
头部由四部分组成:Logo 区、搜索区、热搜词区、主导航 + 用户操作、公告条:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <div class="header"> <div class="row no-gutters"> <div class="col-6"> <div class="row"> <div class="col-1"><i class="fa fa-life-ring fa-4x text-success"></i></div> <div class="col-4 text-center ml-3"> <h3 class="header-size"><a href="#">神影视频</a></h3> <span><a href="#">ShenYingWang</a></span> </div> </div> </div> <div class="col-6"> <div class="d-flex justify-content-end"> <div class="form-inline"> <input type="search" class="form-control" placeholder="搜索"> <a href="#" class="btn btn-success"><i class="fa fa-search"></i></a> </div> </div> <ul class="nav size1 justify-content-end"> <li class="nav-item"><a href="#" class="nav-link">三生三世十里桃花</a></li> <li class="nav-item"><a href="#" class="nav-link">仙剑奇侠传</a></li> <li class="nav-item"><a href="#" class="nav-link">诛仙</a></li> </ul> </div> </div> <div class="row no-gutters mt-2"> <div class="col-6"> <a href="#" class="btn btn-warning">首页</a> <a href="#" class="btn btn-warning">电影</a> <a href="#" class="btn btn-warning">电视剧</a> <a href="#" class="btn btn-warning">动漫</a> <a href="#" class="btn btn-warning">综艺</a> </div> <div class="col-6 text-right"> <a href="#" class="btn btn-warning">登陆</a> <a href="#" class="btn btn-warning">注册</a> </div> </div> <div class="alert alert-success mt-3"> <div class="spinner-border spinner-border-sm text-info"> <span class="sr-only">Loading...</span> </div> 如果您喜欢神影视频,请把它推荐给更多的人! </div> </div>
|
2.2 轮播
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <div id="Carousel" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#Carousel" data-slide-to="0" class="active"></li> <li data-target="#Carousel" data-slide-to="1"></li> <li data-target="#Carousel" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1593685324,2253220400&fm=26&gp=0.jpg" class="d-block w-100" alt=""> </div> <div class="carousel-item"> <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1593167388848&di=97b4ec2057be18432050c6d4cace0c2b&imgtype=0&src=http%3A%2F%2Fmobimg.b-cdn.net%2Fpic%2Fv2%2Fgallery%2Fpreview%2Felovek-pauk_spider_man-kino-17200.jpg" class="d-block w-100" alt=""> </div> <div class="carousel-item"> <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1593167388848&di=96233d5c01f33d22248d0b54a17a1357&imgtype=0&src=http%3A%2F%2Fwww.fjsen.com%2Fimages%2Fattachement%2Fjpg%2Fsite2%2F20130403%2Fd067e519cb6612c5a9701a.jpg" class="d-block w-100" alt=""> </div> </div> <a href="#Carousel" class="carousel-control-prev" data-slide="prev"> <span class="carousel-control-prev-icon"></span> </a> <a href="#Carousel" class="carousel-control-next" data-slide="next"> <span class="carousel-control-next-icon"></span> </a> </div>
|
2.3 分类列表
按”热播排行、类型、地区、电影基因”四个维度提供筛选:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| <div class="row my-3"> <div class="col-4"> <h5 class="card-header">按热播排行</h5> <div class="p-1 bg-white"> <a href="javascript:;" class="btn color4">本周最火</a> <a href="javascript:;" class="btn color4">历史最火</a> <a href="javascript:;" class="btn color4">最新上映</a> <a href="javascript:;" class="btn color4">评分最高</a> <a href="javascript:;" class="btn color4">女性专场</a> <a href="javascript:;" class="btn color4">罪恶题材</a> </div> </div> <div class="col-4"> <h5 class="card-header">按类型</h5> <div class="p-1 bg-white"> <a href="javascript:;" class="btn color4">爱情</a> <a href="javascript:;" class="btn color4">动作</a> <a href="javascript:;" class="btn color4">喜剧</a> <a href="javascript:;" class="btn color4">惊悚</a> <a href="javascript:;" class="btn color4">恐怖</a> <a href="javascript:;" class="btn color4">悬疑</a> <a href="javascript:;" class="btn color4">科幻</a> <a href="javascript:;" class="btn color4">历史</a> <a href="javascript:;" class="btn color4">灾难</a> <a href="javascript:;" class="btn color4">经典</a> </div> </div> <div class="col-2"> <h5 class="card-header">按地区</h5> <div class="p-1 bg-white"> <a href="javascript:;" class="btn color4">内地</a> <a href="javascript:;" class="btn color4">港台</a> <a href="javascript:;" class="btn color4">欧美</a> </div> </div> <div class="col-2"> <h5 class="card-header">按电影基因</h5> <div class="p-1 bg-white"> <a href="javascript:;" class="btn color4">抗日</a> <a href="javascript:;" class="btn color4">间谍</a> <a href="javascript:;" class="btn color4">硬汉</a> <a href="javascript:;" class="btn btn-outline-success btn-sm">更多</a> </div> </div> </div>
|
2.4 视频网格 + 热门排行
主体 9/12 + 侧栏 3/12 是常见的”内容 + 排行榜”布局:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <div class="row pl-3 scale"> <div class="col-9 bg-white pt-3"> <div class="d-flex justify-content-between"> <div><h3><div class="border1 mr-2"></div>最新电影</h3></div> <div><a href="javascript:;" class="btn btn-outline-danger btn-sm">更多</a></div> </div> <div class="row no-gutters"> <div class="col-3 p-1"> <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1593168495263&di=b7e38bc5756f8e88529be2bc2c14a20b&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2F869200af6120b5d7b53b68efa33668fccacd59c0.jpg" class="img-fluid" alt=""> <h5 class="color1">绿巨人2</h5> <p class="color2">最帅绿巨人诺顿</p> </div> </div> </div> <div class="col-3"> <div><h4><i class="fa fa-fire mr-2 text-danger"></i>最热电影</h4></div> <div class="list-group list-group-flush mt-3"> <a href="javascript:;" class="list-group-item list-group-item-action list-group-item-light"> <span class="number1 mr-3">1</span><b class="color3">老师好</b> </a> <a href="javascript:;" class="list-group-item list-group-item-action list-group-item-light"> <span class="number1 mr-3">2</span><b class="color3">笑刀江湖</b> </a> <a href="javascript:;" class="list-group-item list-group-item-action list-group-item-light"> <span class="number1 mr-3">3</span><b class="color3">流浪地球</b> </a> <a href="javascript:;" class="list-group-item list-group-item-action list-group-item-light"> <span class="number3 mr-3">4</span><b class="color3">人间喜剧</b> </a> </div> <div class="mt-4 mb-3"><h4><i class="fa fa-fire mr-2 text-primary"></i>最热电视剧</h4></div> <div class="list-group list-group-flush"> </div> </div> </div>
|
2.5 底部脚注
1 2 3 4 5 6 7 8 9 10 11 12
| <div class="footer mt-4 py-4"> <ul class="nav justify-content-center"> <li class="nav-item"><a href="javascript:;" class="nav-link active">关于我们</a></li> <li class="nav-item"><a href="javascript:;" class="nav-link">|</a></li> <li class="nav-item"><a href="javascript:;" class="nav-link">联系我们</a></li> <li class="nav-item"><a href="javascript:;" class="nav-link">|</a></li> <li class="nav-item"><a href="javascript:;" class="nav-link">诚聘英才</a></li> <li class="nav-item"><a href="javascript:;" class="nav-link">|</a></li> <li class="nav-item"><a href="javascript:;" class="nav-link">友情链接</a></li> </ul> <div class="text-center size2">电影卫星频道节目制作中心</div> </div>
|
三、核心 CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| body{ background: #ececec; font-family: 微软雅黑; } .header-size{ font-size: 2rem; } .size1{ font-size: 0.8rem; } .carousel-item img{ height: 500px; } .color4{ font-size: 0.9rem; } .color4:hover{ background: #00cc00; color: white; } .card-header{ border: 0; background: #dedede; font-size: 1rem; border-left: 3px solid #00cc00; } .color1{ font-size: 1rem; font-weight: bold; margin: 10px 0 5px; } .color1:hover{ color: red; } .scale img:hover{ transform: scale(1.05); } .color2{ font-size: 0.8rem; color: grey; } .color2:hover{ color: black; } .number1{ padding: 0.3rem 0.65rem; background: red; color: white; font-size: 12px; } .number2{ padding: 0.3rem 0.65rem; background: blue; color: white; font-size: 12px; } .number3{ padding: 0.3rem 0.65rem; background: #ffac2b; color: white; font-size: 12px; } .border1{ height: 20px; display: inline-block; border: 3px solid red; } .border2{ height: 20px; display: inline-block; border: 3px solid blue; } .list-group-item{ padding: 0.5rem 1rem; } .color3{ font-size: 1rem; color: black; } .color3:hover{ color: red; } .footer{ border-top: 2px solid white; } .footer a, .size2{ font-size: 0.8rem; color: black; } .footer a:hover{ color: red; }
|
四、关键技术解析
4.1 彩色数字排名
排行榜的”前三名”是用户视线焦点。通过三种颜色 .number1(红)、.number2(蓝)、.number3(橙)配合 <span> 实现”冠军、亚军、季军 + 后续”的视觉层次。这是视频/资讯类网站最常见的设计语言。
4.2 轮播指示器
carousel-indicators 是底部的小圆点,<li> 通过 data-slide-to 绑定到第几张幻灯片。Bootstrap 默认会让 active 项变成蓝色。
4.3 缩略图 4 列网格
row.no-gutters 移除列间距,col-3 p-1 让每张缩略图占 1/4 宽度。这是移动端友好的 4 列网格写法。
4.4 公告与 Loading
spinner-border 提供旋转加载动画,配合 .sr-only 给屏幕阅读器友好。alert-success + mt-3 让公告浮在头部下方但不会喧宾夺主。
五、小结
本案例通过信息密集的视频门户首页练习了 Bootstrap 4 的多种组件组合。建议扩展练习:
- 给视频卡片加 hover 浮层,显示”立即播放”、”收藏”、”分享”按钮。
- 把”按类型”改为 Tab 切换,节省页面空间。
- 给”最热电影”接入真实数据,用 AJAX 拉取。
- 把”轮播”改为支持视频自动播放 + 静音的
<video> 标签。