源码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="static/font_icon/iconfont.css" />
<title>php中文网</title>
</head>
<style>
* {
padding: 0;
margin: 0;
}
/* 字体颜色样式 */
.color888 {
color: #888;
}
h3 {
font-weight: 400;
}
body {
background-color: #edeff0;
}
h2 {
color: #888;
margin-left: 10px;
font-size: 16px;
}
/* ---------- header样式设置 ---------- */
header {
background-color: #666;
display: flex;
/* 默认行显示,禁止换行 */
flex-flow: row nowrap;
align-items: center;
/* 分散对齐 */
justify-content: space-between;
height: 46px;
width: 98%;
margin-left: 1%;
position: fixed;
top: 0;
right: 0;
left: 0;
}
/* 设置header标签中子元素a的样式 */
header > a {
/* 去除a标签装饰即下划线 */
text-decoration: none;
color: #fff;
/* 设置字体样式:斜体 */
font-style: italic;
/* 设置字体粗细:加粗*/
font-weight: bold;
}
/* 重写header标签中使用的字体图标的部分样式 */
header > a > span.iconfont {
font-size: 32px;
}
/* 设置header标签中第二个a标签即顶部导航栏中间title的样式 */
header > a:nth-of-type(2) {
font-size: 18px;
align-content: center;
display: flex;
flex-flow: row nowrap;
align-items: center;
}
header > a:nth-of-type(2) .iconfont {
height: 100%;
color: red;
font-size: 3rem;
/* background-color: #fff; */
}
/* 设置白色背景有问题 */
/* header > a:nth-last-of-type(2) > span {
background-color: white;
} */
/* 设置banner样式 */
body > div:first-of-type {
margin-top: 46px;
width: 98%;
margin-left: 1%;
}
body > div:first-of-type > a > img {
height: 160px;
width: 100%;
}
/* ---------- 功能导航区样式设置 ---------- */
nav {
margin-top: 20px;
height: 200px;
/* 将nav标签下所有的div设置为flex布局 */
display: flex;
/* 横向排列(主轴为水平方向),允许换行 */
flex-flow: row wrap;
}
nav > div {
/* 将每个单独的导航区(div标签中)设置为一个flex盒子,导航块的图片和文字的作为flex盒子的两个项目进行布局 */
display: flex;
/* 设置主轴为垂直方向(即垂直方向排列),不允许换行 */
flex-flow: column nowrap;
/* 让flex中的项目在交叉轴居中,当前交叉轴为横轴,即为水平居中 */
align-items: center;
/* 设置每个flex项目的宽度为25% */
width: 25%;
}
nav > div :first-of-type > img {
/* 设置每个img的宽度为当前flex项目的50%,即deviceWidth的25% 的 50% = deviceWidth/8 */
width: 50%;
}
nav > div > a {
text-align: center;
/* text-decoration-line: none; */
text-decoration: none;
color: #777;
font-weight: bold;
font-size: 14px;
}
.course {
margin-top: 20px;
}
/* 统一去掉列表前面的 · */
ul {
list-style: none;
}
/* ---------- 推荐课程板块样式设置 ---------- */
/* 水平方向的 */
.course-horizontal-list {
display: flex;
flex-flow: row nowrap;
/* 设置宽度96% 左侧便宜2%,右侧也就剩下2% ,为了留下左右边框 */
width: 96%;
margin-left: 2%;
/* 两端对齐 */
justify-content: space-between;
margin-top: 10px;
/* 设置flex项目不放大,可收缩,默认宽度 */
flex: 0 1 auto;
}
.course-horizontal-list > a {
/* a标签留1%的宽度,两端对齐的情况下中间就是2%的宽度,会好看些 */
width: 49%;
height: 100%;
}
.course-horizontal-list > a > img {
width: 100%;
}
/* 垂直方向的 */
.course-vertical-list {
margin-top: 10px;
margin-left: 2%;
width: 96%;
}
.course-vertical-list > ul {
display: flex;
flex-flow: column nowrap;
flex: 0 1 auto;
align-content: space-evenly;
/* height: 120px; */
}
.course-vertical-list > ul > li > div {
height: 120px;
display: flex;
flex-flow: row nowrap;
/* 设置主轴方向上的对齐使用 justify-content 属性 */
justify-content: flex-start;
flex: 0 1 auto;
width: 100%;
background-color: #fff;
/* 设置交叉轴方向上的居中显示 */
align-items: center;
}
/* 左侧图片内容区 */
.course-vertical-list > ul > li > div > a {
height: 90%;
width: 40%;
}
/* 设置img在a标签中的具体大小及左侧偏移量 */
.course-vertical-list > ul > li > div > a > img {
height: 100%;
width: 90%;
margin-left: 4%;
}
/* 右侧文字介绍区 */
.course-vertical-list > ul > li > div > div {
/* 右侧文字区域,强制制定高度与左侧一致,解决flex布局交叉轴居中导致的文字在中间显示问题 */
height: 90%;
width: 55%;
}
/* 等级的文字显示样式 */
.course-vertical-list > ul > li > div > div > p > span:first-of-type {
font-size: 11px;
background-color: #666;
color: #fff;
border: 3px solid #666;
border-radius: 10px;
}
/* 播放次数的文字显示样式 */
.course-vertical-list > ul > li > div > div > p > span:last-of-type {
font-size: 10px;
}
/* 每行下方间隔的灰色区域、写完上面的才发现这个区域没办法设置。
如果用flex布局需要将前面写的进行调整。
大概思路:将每行内容拆分为上部分内容区和下方的灰色区域作为一个flex布局中的两个项目,再将每行作为一个flex的项目这样来布局。
或者在现有布局上进行调整,即单独设置左右两个flex项目的背景色,把当前行的div背景色设置浅灰色,
通过调整行内项目size让flex项目内容高度撑不起总高度。应该同样可以实现。
由于时间关系,暂时以这种添加div的方式解决吧。。。
*/
.course-vertical-list > ul > li > div:last-of-type {
height: 22px;
}
/* ---------- 最新更新板块样式设置 ---------- */
/* 列表部分的样式直接复用了推荐课程中的部分样式,仅对右侧内容区域单独做了设置*/
.newupdate-desc {
display: flex;
flex-flow: row wrap;
}
.newupdate-desc-content {
font-size: 10px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.newupdate-desc-message {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
width: 100%;
height: 20px;
}
/* ---------- 最新文章板块样式设置 ---------- */
.new-article {
margin-left: 2%;
margin-top: 10px;
width: 96%;
}
.new-article-desc {
background-color: #fff;
display: flex;
flex-flow: row nowrap;
height: 100px;
flex: 0 1 auto;
justify-content: flex-end;
}
.new-article-desc > div:first-of-type {
width: 70%;
height: 100%;
}
/* 左侧文字区域样式设置 */
.new-article-desc > div:first-of-type > div {
margin-left: 2%;
display: flex;
flex-flow: column nowrap;
height: 80px;
justify-content: space-around;
}
.new-article-desc > div:first-of-type > div > h5 {
font-size: 14px;
}
.new-article-desc > div:first-of-type > div > p {
font-size: 12px;
}
/* 右侧图片区域样式设置 */
.new-article-desc > div:last-of-type {
width: 30%;
height: 100%;
/* border: 2px solid burlywood; */
}
/* 这里有点疑问,margin-top、left 设定百分比到底是以哪个值为参考的? */
.new-article-desc > div:last-of-type > a {
display: inline-block;
width: 90%;
height: 80%;
margin-top: 5%;
margin-left: 5%;
}
.new-article-desc > div:last-of-type > a > img {
width: 100%;
height: 100%;
}
/* 同样的方式设置底部灰色间隔 */
.new-article > ul > li > div:last-of-type {
height: 14px;
}
.lastrow {
text-align: center;
color: #888;
height: 26px;
font-size: 14px;
line-height: 26px;
}
/* ---------- 最新博文、最新问答板块样式设置,这两个板块样式一样---------- */
.new-blogview{
margin-top: 20px;
}
.new-blog{
margin-top: 10px;
background-color: #fff;
margin-left: 2%;
width: 96%;
}
.new-blog > ul > li{
display: flex;
flex-flow: column nowrap;
}
.new-blog > ul > li > div:last-of-type{
height: 12px;
background-color: #edeff0;
}
.new-blog > ul > li > div:first-of-type {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
height: 40px;
}
.new-blog > ul > li > div:first-of-type > p{
text-decoration: none;
color: #888;
font-size: 14px;
margin-left: 1%;
width: 50%;
height: 100%;
line-height: 40px;
font-weight: 400;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.new-blog > ul > li > div:first-of-type > span{
line-height: 46px;
margin-right: 2%;
font-size: 13px;
color: #888;
}
.more-content {
height: 26px;
text-align: center;
}
.more-content > span{
color: #888;
line-height: 26px;
height: 26px;
font-size: 14px;
}
/* ---------- 页脚tabbar样式设置 ---------- */
footer {
color: #777;
background-color: #eee;
display: flex;
flex-flow: row nowrap;
justify-content: space-around;
position: fixed;
width: 100%;
height: 46px;
position: fixed;
bottom: 0;
right: 0;
left: 0;
}
footer > a {
text-decoration: none;
color: #777;
display: flex;
flex-flow: column nowrap;
width: 100%;
align-items: center;
justify-content: center;
}
footer > a:hover{
color: red;
}
.footer-space{
height: 46px;
}
</style>
<body>
<!-- 页眉 -->
<header>
<a href=""><span class="iconfont"></span></a>
<a href=""><span class="iconfont"></span>中文网</a>
<a href=""><span class="iconfont"></span></a>
</header>
<!-- banner -->
<div class="banner">
<a href=""><img src="static/images/banner/banner.png" alt="" /></a>
</div>
<!-- 导航区 -->
<nav>
<!-- HTML/CSS -->
<div>
<a href=""><img src="static/images/htm.png" alt="" /></a>
<a href="">HTML/CSS</a>
</div>
<!-- JacaScript -->
<div>
<a href=""><img src="static/images/JavaScript.png" alt="" /></a>
<a href="">JacaScript</a>
</div>
<!-- 服务端 -->
<div>
<a href=""><img src="static/images/code.png" alt="" /></a>
<a href="">服务端</a>
</div>
<!-- 数据库 -->
<div>
<a href=""><img src="static/images/sql.png" alt="" /></a>
<a href="">数据库</a>
</div>
<!-- 移动端 -->
<div>
<a href=""><img src="static/images/app.png" alt="" /></a>
<a href="">移动端</a>
</div>
<!-- 手册 -->
<div>
<a href=""><img src="static/images/manual.png" alt="" /></a>
<a href="">手册</a>
</div>
<!-- 工具 -->
<div>
<a href=""><img src="static/images/tool2.png" alt="" /></a>
<a href="">工具</a>
</div>
<!-- 直播 -->
<div>
<a href=""><img src="static/images/live.png" alt="" /></a>
<a href="">直播</a>
</div>
</nav>
<!-- 推荐课程 -->
<div class="course">
<h2>推荐课程</h2>
<!-- 两个横向排列的课程:使用flex布局 -->
<div class="course-horizontal-list">
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/001/5d242759adb88970.jpg"
alt=""
/></a>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/001/5d2426f409839992.jpg"
alt=""
/></a>
</div>
<!-- 两个纵向的课程列表实现思路:
1.把整个列表<ul>标签用flex布局,每个<li>标签作为一个flex项目,垂直方向布局,允许换行.
2.列表的每一行作为一个flex项目,横向排列,即实现图片在左,文字在右边的排列格式,调整项目宽度实现页面效果.
-->
<div class="course-vertical-list">
<ul>
<li>
<div>
<!-- 左侧图片内容 -->
<a href="">
<img
src="https://img.php.cn/upload/course/000/000/035/5d2941e265889366.jpg"
alt=""
/>
</a>
<!-- 右侧文字介绍内容区div -->
<div class="color888">
<h3>CI框架30分钟极速入门</h3>
<p>
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
<li>
<div>
<a href="">
<img
src="https://img.php.cn/upload/course/000/126/153/5aa23f0ded921649.jpg"
alt=""
/>
</a>
<div class="color888">
<h3>2018前端入门_HTML5</h3>
<p>
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
</ul>
</div>
</div>
<!-- 最新更新 -->
<div>
<h2>最新更新</h2>
<div class="course-vertical-list">
<ul>
<li>
<div>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/015/5e0d6387e45cc764.png"
alt=""
/></a>
<div class="color888 newupdate-desc">
<h3>PHP快速操控Excel之PhpSpreadsheet</h3>
<p class="newupdate-desc-content">
老的PHPExcel已经停止更新了!目前最新的是使用phpOffice插件PhpSpreadsheet,用纯
php
编写的库,它提供了一组类,允许您读取和写入不同的电子表格文件格式!php中文网欧阳克老师原创课程!注:PHP运行环境需要PHP7.1以上
</p>
<p class="newupdate-desc-message">
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
<li>
<div>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/015/5e0d82773b4fe808.png"
alt=""
/></a>
<div class="color888 newupdate-desc">
<h3>Thinkphp6.0正式版视频教程</h3>
<p class="newupdate-desc-content">
Thinkphp6.0从2019年10月24日正式发布,相对测试版,有很多变动,目前TP6已经相对比较稳定了,所以php中文网在2020年再次重新录制课程,帮助快速入门!相关推荐:
ThinkPHP6.0完全开发手册(注解版) https://www.php.cn/course/1049.html
</p>
<p class="newupdate-desc-message">
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
<li>
<div>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/014/5db2b53c67bca626.jpg"
alt=""
/></a>
<div class="color888 newupdate-desc">
<h3>2019python自学视频</h3>
<p class="newupdate-desc-content">
本课程适合想从零开始学习 Python 编程语言的开发人员。由浅入深的带你进入python世界,自学python的一份好课程,兄弟连课程
</p>
<p class="newupdate-desc-message">
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
<li>
<div>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/015/5da7e9b7895ed229.png"
alt=""
/></a>
<div class="color888 newupdate-desc">
<h3>PHP开发免费公益直播课</h3>
<p class="newupdate-desc-content">
主讲:php中文网-朱老师( Peter Zhu)
时间:2019.10.17 晚 20:00-22:00
主题:如何高效的学习一门新技术?
具体内容:1. 2020了, 还有哪些值得学习的新技术? 2.如何高效的学习前端开发? 3.如果高效的学习PHP开发?4.phpStudy V8 新功能介绍与演示 5.小皮面板功能介绍
</p>
<p class="newupdate-desc-message">
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
<li>
<div>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/014/5da6a50535529903.jpg"
alt=""
/></a>
<div class="color888 newupdate-desc">
<h3>从零开始到WEB响应式布局</h3>
<p class="newupdate-desc-content">
重点介绍了HTML、CSS、web布局前端核心技术,通过视频讲解,了解可以利用HTML+CSS做什么,有相关工具、后端语言,逻辑思维训练等知识点
</p>
<p class="newupdate-desc-message">
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
<li>
<div>
<a href=""
><img
src="https://img.php.cn/upload/course/000/000/015/5e0d6387e45cc764.png"
alt=""
/></a>
<div class="color888 newupdate-desc">
<h3>CI框架30分钟极速入门</h3>
<p class="newupdate-desc-content">
老的PHPExcel已经停止更新了!目前最新的是使用phpOffice插件PhpSpreadsheet,用纯
php
编写的库,它提供了一组类,允许您读取和写入不同的电子表格文件格式!php中文网欧阳克老师原创课程!注:PHP运行环境需要PHP7.1以上
</p>
<p class="newupdate-desc-message">
<span>中级</span>
<span>61239次播放</span>
</p>
</div>
</div>
<div class="bottom-bgview" style="background-color: #edeff0;"></div>
</li>
</ul>
</div>
</div>
<!-- 最新文章 -->
<div>
<h2>最新文章</h2>
<div class="new-article">
<ul>
<li>
<div class="new-article-desc">
<div>
<div class="color888">
<h5>测试laravel commands的方法详解</h5>
<p>发布时间:2020-04-13</p>
</div>
</div>
<div>
<a href="">
<img
src="https://img.php.cn/upload/article/000/000/020/5e93ff38338a9884.jpg"
alt=""
/>
</a>
</div>
</div>
<div style="background-color: #edeff0;"></div>
</li>
<li>
<div class="new-article-desc">
<div>
<div class="color888">
<h5>windows电脑开机后鼠标一直转圈怎么办</h5>
<p>发布时间:2020-04-13</p>
</div>
</div>
<div>
<a href="">
<img
src="https://img.php.cn/upload/article/000/000/041/5e93fd9ee73ce892.jpg"
alt=""
/>
</a>
</div>
</div>
<div style="background-color: #edeff0;"></div>
</li>
<li>
<div class="new-article-desc">
<div>
<div class="color888">
<h5>5个linux基础入门视频教程推荐,适合linux初学者学习!</h5>
<p>发布时间:2020-04-12</p>
</div>
</div>
<div>
<a href="">
<img
src="https://img.php.cn/upload/article/000/000/164/59325015bc179689.jpg"
alt=""
/>
</a>
</div>
</div>
<div style="background-color: #edeff0;"></div>
</li>
<li>
<div class="new-article-desc">
<div>
<div class="color888">
<h5>win10电脑更新卡在0%怎么办</h5>
<p>发布时间:2020-04-11</p>
</div>
</div>
<div>
<a href="">
<img
src="https://img.php.cn/upload/article/000/000/041/5e93fa8f1d850923.jpg"
alt=""
/>
</a>
</div>
</div>
<div style="background-color: #edeff0;"></div>
</li>
<li>
<div class="new-article-desc">
<div>
<div class="color888">
<h5>win7系统恢复出厂设置后账户被停用了怎么解决</h5>
<p>发布时间:2020-04-11</p>
</div>
</div>
<div>
<a href="">
<img
src="https://img.php.cn/upload/article/000/000/041/5e93f7ffef533736.jpg"
alt=""
/>
</a>
</div>
</div>
<div style="background-color: #edeff0;"></div>
</li>
<li>
<div class="new-article-desc">
<div>
<div class="color888">
<h5>sublime正则搜索替换修改数据的方法</h5>
<p>发布时间:2020-04-11</p>
</div>
</div>
<div>
<a href="">
<img
src="https://img.php.cn/upload/article/000/000/020/5e91923747dab842.jpg"
alt=""
/>
</a>
</div>
</div>
<div style="background-color: #edeff0;"></div>
</li>
</ul>
<div class="lastrow" style="background-color: #fff;">
更多内容
</div>
</div>
</div>
<!-- 最新博文 -->
<div class="new-blogview">
<h2>最新博文</h2>
<div class="new-blog">
<ul>
<li>
<div>
<p class="new-blog-content">细说选择器:简单选择器、上下文选择器、伪类选择器、其它选择器</p>
<span>2020-04-13</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">CSS 中各类选择器的属性及应用</p>
<span>2020-04-13</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">CSS3:弹性盒子flex布局</p>
<span>2020-04-12</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">flex容器中的主轴方向与项目换行缩写、主轴,交叉轴和多行容器交叉轴项目对齐以及以及flex属性的缩写和案例</p>
<span>2020-04-12</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">Jquery+AJAX上传文件,无刷新上传并重命名文件</p>
<span>2020-04-11</span>
</div>
<div></div>
</li>
</ul>
<div class="more-content"><span>更多内容</span></div>
</div>
</div>
<!-- 最新问答 -->
<div class="new-blogview">
<h2>最新问答</h2>
<div class="new-blog">
<ul>
<li>
<div>
<p class="new-blog-content">加入判断条件后页面报错不跳转!</p>
<span>2020-04-13</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">为什么老师,你de button按钮处可以有两个ID是一样的id="loginbtn" 而不会报错啊</p>
<span>2020-04-13</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">url访问admin下的控制器的方法,有问题</p>
<span>2020-04-12</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">php+workerman实现新订单提示语音</p>
<span>2020-04-12</span>
</div>
<div></div>
</li>
<li>
<div>
<p class="new-blog-content">不出现tp6.0页面</p>
<span>2020-04-11</span>
</div>
<div></div>
</li>
</ul>
<div class="more-content"><span>更多内容</span></div>
</div>
</div>
<!-- 底部导航 -->
<div class="footer-space"></div>
<footer>
<a href="">
<span class="iconfont"></span>
<span>首页</span>
</a>
<a href="">
<span class="iconfont"></span>
<span>视频</span>
</a>
<a href="">
<span class="iconfont"></span>
<span>社区</span>
</a>
<a href="">
<span class="iconfont"></span>
<span>我的</span>
</a>
</footer>
</body>
</html>