1 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>
<!-- 引入 CSS 文件,先清除默认样式 -->
<!-- 顺序要求:先清除,再设置 -->
<link rel="stylesheet" href="./CSS/base.css">
<link rel="stylesheet" href="./CSS/index.css">
</head>
<body>
<!-- 头部区域 -->
<div class="header">
<!-- 版心也是一个盒子 -->
<div class="wrapper">
<!-- logo -->
<div class="logo">
<h1><a href="#">学成在线</a></h1>
</div>
<!-- 导航 -->
<div class="nav">
<ul>
<li><a href="#" class="active">首页</a></li>
<li><a href="#">课程</a></li>
<li><a href="#">职业规划</a></li>
</ul>
</div>
<!-- 搜索 -->
<div class="search">
<!-- placeholder 提示文字 -->
<input type="text" placeholder="请输入关键词">
<a href="#"></a>
</div>
<!-- 用户 -->
<div class="user">
<a href="#">
<img src="./uploads/user.png" alt="">
<span>博仔学前端</span>
</a>
</div>
</div>
</div>
<!-- banner 区域 -->
<!-- 通栏 -->
<div class="banner">
<!-- 版心 -->
<div class="wrapper">
<!-- 版心内定义一左一右 -->
<div class="left">
<ul>
<li><a href="#">前端开发</a></li>
<li><a href="#">后端开发</a></li>
<li><a href="#">移动开发</a></li>
<li><a href="#">人工智能</a></li>
<li><a href="#">商业预测</a></li>
<li><a href="#">云计算&大数据</a></li>
<li><a href="#">运维&测试</a></li>
<li><a href="#">UI设计</a></li>
<li><a href="#">产品</a></li>
</ul>
</div>
<div class="right">
<h3>我的课程表</h3>
<div class="content">
<dl>
<dt>数据可视化课程</dt>
<dd><span>正在学习</span>-<strong>echarts使用步骤</strong></dd>
</dl>
<dl>
<dt>Vue3医疗项目课程</dt>
<dd><span>正在学习</span>-<strong>认识组合式API</strong></dd>
</dl>
<dl>
<dt>React核心技术课程</dt>
<dd><span>正在学习</span>-<strong>rudex配合TS使用</strong></dd>
</dl>
<a href="#">全部课程</a>
</div>
</div>
</div>
</div>
<!-- 精品推荐 -->
<!-- wrapper 还要有版心居中的效果 -->
<div class="recommend wrapper">
<h3>精品推荐</h3>
<ul>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">Node.js</a></li>
<li><a href="#">Ajax</a></li>
<li><a href="#">Vue2.0</a></li>
<li><a href="#">Vue3.0</a></li>
<li><a href="#">TypeScript</a></li>
<li><a href="#">React</a></li>
</ul>
<a href="#" class="modify">修改兴趣</a>
</div>
<!-- 精品推荐课程 -->
<div class="course wrapper">
<!-- 标题 -->
<div class="hd">
<h3>精品推荐</h3>
<a href="#" class="more">查看全部</a>
</div>
<!-- 内容 -->
<div class="bd">
<!-- 快捷键: ul>li{$}*10 -->
<ul>
<li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li>
<li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li><li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li>
</ul>
</div>
</div>
<!-- 前端开发工程师区域 -->
<div class="wrapper">
<!-- 标题 -->
<div class="hd">
<h3>前端开发工程师</h3>
<ul>
<li><a href="#" class="active">热门</a></li>
<li><a href="#">初级</a></li>
<li><a href="#">中级</a></li>
<li><a href="#">高级</a></li>
</ul>
<a href="#" class="more">查看全部</a>
</div>
<div class="bd">
<div class="left">
<img src="./uploads/web_left.png" alt="">
</div>
<div class="right">
<div class="top"><img src="./uploads/web_top.png" alt=""></div>
<div class="bottom">
<ul>
<li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li>
<li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li>
<li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li>
<li>
<a href="#">
<div class="pic"><img src="./uploads/course01.png" alt=""></div>
<div class="text">
<h4>JavaScript数据看板项目实战</h4>
<p><span>高级</span> . <i>1125</i>人在学习</p>
</div>
</a>
</li>
</ul>
</div>
</div>
</div>
<!-- 内容 -->
</div>
<!-- 版权区域 -->
<!-- 通栏 -->
<div class="footer">
<!-- 版心 -->
<div class="wrapper">
<div class="left">
<a href="#"><img src="./images/logo.png" alt=""></a>
<p>学成在线致力于普及中国最好的教育它与中国一流大学和机构合作提供在线课程。
@2017年XTCGInc.保留所有权利。-沪ICP备15025210号</p>
<a href="#" class="download">下载APP</a>
</div>
<div class="right">
<dl>
<dt>合作伙伴</dt>
<dd><a href="#">合作机构</a></dd>
<dd><a href="#">合作导师</a></dd>
</dl>
<dl>
<dt>合作伙伴</dt>
<dd><a href="#">合作机构</a></dd>
<dd><a href="#">合作导师</a></dd>
</dl>
<dl>
<dt>合作伙伴</dt>
<dd><a href="#">合作机构</a></dd>
<dd><a href="#">合作导师</a></dd>
</dl>
</div>
</div>
</div>
</body>
</html>
2 CSS
/* 首页样式 */
/* 版心居中 */
.wrapper {
margin: 0 auto;
width: 1200px;
}
/* 首页背景色是灰色 */
body {
background-color: #f3f5f7;
}
/* 头部区域的样式 */
.header {
height: 100px;
background-color: #fff;
}
.header .wrapper {
display: flex; /* 盒子在一行内显示 */
padding-top: 29px;
}
/* logo 样式 */
.header .wrapper .logo a {
display: block;
width: 195px;
height: 41px;
background-image: url(../images/logo.png); /* logo 当作背景图显示 */
font-size: 0; /* 文字大小设置成 0 ,即可隐藏文字*/
/* background-color: pink; */
}
/* 导航样式 */
.nav ul {
display: flex; /* 让 首页 课程 职业规划 在一行内排列*/
margin-left: 102px;
}
.nav li {
margin-right: 24px; /* 这是加的 首页 和 课程 之间的 */
}
.nav li a {
display: block;
padding: 0 8px;
font-size: 19px;
margin-top: 6px; /* a 是行内标签,直接加不会显示,可以改成块*/
margin-bottom: 6px;
line-height: 27px;
/* background-color: skyblue; */
}
/* 默认 以及 鼠标悬停,显示蓝色框 */
/* active 类选择器,表示默认选中的 a */
.nav li .active,
.nav li a:hover {
border-bottom: 2px solid #00a4ff ; /* 加 下边 的边框线*/
}
/* 搜索 */
.search {
display: flex;
width: 412px;
height: 40px;
background-color: #f3f5f7;
border-radius: 20px;
margin-left: 64px; /*要用 96 - 内边距8 - 外边距24*/
/* 框内还有内边距 */
padding-left: 19px;
padding-right: 12px;
}
.search input {
flex: 1; /* 是弹性伸缩比,即占父级剩余部分的一份.即全部*/
border: 0; /* 边框线不要*/
background-color: #f3f5f7; /*背景色可以写和父级一样,或者写成透明色*/
background-color: transparent; /*透明色*/
/* 去掉表单控件的焦点框 */
outline: none; /* 即点击的时候,也不要出现框*/
/* font-size: 14px;
color: #999;
line-height: 20px; */
}
/* ::placeholder 选中的就是 placeholder 属性文字样式 */
.search input::placeholder {
font-size: 14px;
color: #999;
/* line-height: 20px; */
}
/* 父级是 flex 布局,子级变弹性盒子:加宽高生效 */
.search a {
/* 因为 a 已经是弹性盒子,要垂直居中,直接写侧轴居中即可,就不用加外边距 */
align-self: center; /* 弹性盒子侧轴居中 */
width: 16px;
height: 16px;
background-image: url(../images/search.png);
/* margin-top: 12px;
margin-bottom: 12px; */
}
/* 用户样式 */
.user {
/* display: flex; */
margin-left: 32px;
margin-top: 4px;
}
.user img {
/* !!! */
/* vertical-align: middle; 是调整行内块和行内垂直方向对齐方式 */
vertical-align: middle; /* 图片和文字会一起垂直居中!!!! */
margin-right: 7px;
}
.user span {
/* width: 80px;
height: 23px; */
color: #666;
font-size: 16px;
}
/* banner 区域 */
.banner {
height: 420px;
background-color: #0092cb;
}
/* banner 里的版心区域 */
.banner .wrapper {
display: flex;
justify-content:space-between; /* 调整主轴对齐方式,一个最左,一个最右 */
height: 420px;
background-image: url(../uploads/banner.png);
}
/* 侧导航 */
.banner .left {
width: 191px;
height: 420px;
background-color: rgba(0, 0, 0, 0.42); /* 黑色半透明 */
padding: 3px 20px; /*上下三像素,左右20*/
}
/* 给链接 a 加样式 */
.banner .left a {
/* 转成块级:宽度是父级的 100% */
display: block; /* 转变成块级,高度才能生效 */
height: 46px;
line-height: 46px; /* 垂直居中,等于行高 */
color: #fff;
font-size: 16px;
/* 设置背景图箭头 */
background-image: url(../images/right.png);
background-repeat: no-repeat; /* 背景图不平铺 */
background-position: right;
}
/* 鼠标悬停加样式 */
.banner .left a:hover {
color: #00a4ff;
background-image: url(../images/right-hover.png);
}
/* 课程表区域 */
.banner .right {
margin-top: 60px;
width: 218px;
height: 305px;
background-color: #209dd5;
border-radius: 10px; /* 设置圆角 */
}
.banner .right h3 {
margin-left: 14px;
height: 48px;
line-height: 48px; /* 同时写高度和行高 48,可以让文字垂直居中*/
font-size: 15px;
color: #fff;
font-weight: 400;
}
.banner .right .content {
padding: 14px; /* 上下左右都是 14*/
/* 宽是父级的百分百,不用写 */
height: 257px;
background-color: #fff;
border-radius: 10px;
}
.banner .right .content dl {
margin-bottom: 12px;
border-bottom: 1px solid #e0e0e0;
}
.banner .right .content dt {
font-size: 14px;
margin-bottom: 8px;
line-height: 20px;
font-weight: 700;
}
.banner .right .content dd {
margin-bottom: 8px;
font-size: 12px;
line-height: 16px;
}
.banner .right .content dd span {
color: #00a4ff;
}
.banner .right .content dd strong {
color: #7d7d7d;
font-weight: 400;
}
.banner .right .content a {
display: block;
height: 32px;
background-color: #00a4ff;
border-radius: 15px;
/* 水平居中 */
text-align: center;
/* 垂直居中 */
line-height: 32px; /*行高为块级高度*/
font-size: 14px;
color: #fff;
}
/* 精品推荐 */
.recommend {
display: flex;
height: 60px;
background-color: #fff;
box-shadow: 0px 1px 2px 0px rgba(211, 211, 211, 0.5);
margin-top: 11px;
padding: 0 20px;
line-height: 60px; /* 文字会垂直居中 */
}
.recommend h3 {
font-size: 18px;
color: #00a4ff;
font-weight: 400;
}
.recommend ul {
display: flex;
/* 除去标题精品推荐和修改兴趣的尺寸,父级剩余尺寸都给ul,实现把修改兴趣挤到最右侧 */
flex: 1; /* 占父级剩余的全部 */
}
.recommend ul li a {
padding: 0 24px;
/* 给 a 标签加右边框,可以和字体一样高,因为 a 是行内标签,大小靠内容撑开 */
border-right: 1px solid #e0e0e0;
font-size: 18px;
}
/* 选中最后一个 a */
.recommend ul li:last-child a {
border-right: 0cm;
}
.recommend .modify {
font-size: 16px;
color: #00a4ff;
}
/* 精品推荐 */
.course {
margin-top: 15px;
}
/* 标题 - 公共类,与其他区域共用 */
.hd{
display: flex;
/* 调整主轴对齐方式 */
justify-content: space-between;
height: 60px;
line-height: 60px;
}
.hd h3 {
font-size: 21px;
font-weight: 400;
}
.course .hd .more {
padding-right: 20px;
font-size: 14px;
color: #999;
background: url(../images/more.png) no-repeat right center;
}
/* 课程内容 - 公共类 */
.bd ul {
display: flex;
flex-wrap: wrap; /* 弹性换行 */
justify-content: space-between; /* 主轴对齐方式 */
}
.bd li {
margin-bottom: 14px;
width: 228px;
height: 271px;
background-color: pink;
}
.bd li .pic {
height: 156px;
}
.bd li .text {
padding: 20px;
height: 115px;
background-color: #fff;
}
.bd li .text h4 {
margin-bottom: 13px;
height: 40px;
font-size: 14px;
line-height: 20px;
font-weight: 400;
}
.bd li .text p {
font-size: 14px;
line-height: 20px;
color: #999;
}
.bd li .text p span {
color: #fa6400;
}
/* 设置 i 标签不倾斜 */
.bd li .text p i {
font-style: normal;
}
/* 前端开发工程师区域 */
.hd ul {
display: flex;
}
.hd li {
margin-right: 60px;
font-size: 16px;
}
/* 表示当前选中的类样式 */
.hd li .active {
color: #00a4ff;
}
.bd {
display: flex;
justify-content: space-between;
}
.bd .left {
width: 228px;
/* background-color: pink; */
}
.bd .right {
width: 957px;
/* background-color: skyblue; */
}
.bd .right .top {
margin-bottom: 15px;
height: 100px;
}
/* 版权区域 */
.footer {
margin-top: 60px;
padding-top: 60px;
height: 273px;
background-color: #fff;
}
.footer .wrapper {
display: flex;
justify-content: space-between;
}
.footer .wrapper .left {
width: 440px;
/* background-color: pink; */
}
.footer .left p {
margin-top: 14px;
margin-bottom: 24px;
font-size: 12px;
line-height: 17px;
color: #666;
}
.footer .left .download {
display: block;
width: 120px;
height: 36px;
border: 1px solid #00a4ff;
text-align: center; /*文字水平居中*/
line-height: 34px;
font-size: 16px;
color: #00a4ff
}
.footer .right {
display: flex;
}
.footer .right dl {
margin-left: 130px;
}
.footer .right dt {
margin-bottom: 12px;
font-size: 16px;
line-height: 23px;
}
.footer .right a {
font-size: 14px;
color: #666;
line-height: 24px;
}
3 效果
