当前位置: 首页 > news >正文

Web前端—网页制作(以“学成在线”为例)

版本说明

当前版本号[20231105]。

版本修改说明
20231105初版

目录

文章目录

  • 版本说明
  • 目录
  • day07-学成在线
    • 01-项目目录
    • 02-版心居中
    • 03-布局思路
    • 04-header区域-整体布局
      • HTML结构
      • CSS样式
    • 05-header区域-logo
    • 06-header区域-导航
      • HTML结构
      • CSS样式
    • 07-header区域-搜索布局
      • HTML结构
      • CSS样式
    • 08-header区域-搜索内容
      • HTML结构
      • CSS样式
    • 09-header区域-用户区域
      • HTML结构
      • CSS样式
    • 10-banner区域-布局
      • HTML结构
      • CSS样式
    • 11-banner区域-侧导航
      • HTML结构
      • CSS样式
    • 12-banner区域-课程表布局
      • HTML布局
      • CSS样式
    • 13-banner区域-课程表内容
      • HTML结构
      • CSS样式
    • 14-banner区域-全部课程
      • HTML结构
      • CSS样式
    • 15-精品推荐-区域布局
      • HTML结构
      • CSS样式
    • 16-精品推荐-内容样式
      • HTML结构
      • CSS样式
    • 17-推荐课程-标题区域
      • HTML结构
      • CSS样式
    • 18-推荐课程-内容布局
      • HTML结构
      • CSS样式
    • 19-推荐课程-内容样式
      • HTML结构
      • CSS样式
    • 20-前端开发工程师区域
      • HTML结构
      • CSS样式
    • 21-版权-布局
      • HTML结构
      • CSS样式
    • 22-版权-内容
      • HTML结构
      • CSS样式

day07-学成在线

01-项目目录

网站根目录是指存放网站的第一层文件夹,内部包含当前网站的所有素材,包含 HTML、CSS、图片、JavaScript等等。

1680336645218

  • 首页引入CSS文件
<!-- 顺序要求:先清除再设置 -->
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/index.css">

02-版心居中

1680336711608

.wrapper {margin: 0 auto;width: 1200px;
}
<body><div class="wrapper">1</div>
</body>

image-20231024095614698

03-布局思路

  1. 布局思路:先整体再局部,从外到内,从上到下,从左到右
  2. CSS 实现思路
    1. 画盒子,调整盒子范围 → 宽高背景色
    2. 调整盒子位置 → flex 布局、内外边距
    3. 控制图片、文字内容样式

04-header区域-整体布局

1680337054328

HTML结构

<!-- 头部区域 -->
<div class="header"><div class="wrapper"><!-- logo --><div class="logo">logo</div><!-- 导航 --><div class="nav">导航</div><!-- 搜索 --><div class="search">search</div><!-- 用户 --><div class="user">用户</div></div>
</div>

CSS样式

/* 头部区域 */
.header {height: 100px;background-color: #fff;
}.header .wrapper {padding-top: 29px;display: flex;
}

image-20231025110003943

05-header区域-logo

1680337229070

logo 功能:

  • 单击跳转到首页
  • 搜索引擎优化:提升网站百度搜索排名

实现方法:

  • 标签结构:h1 > a > 网站名称(搜索关键字)
<div class="logo"><h1><a href="#">学成在线</a></h1>
</div>
  • CSS 样式
/* logo */
.logo a {display: block;width: 195px;height: 41px;background-image: url(../images/logo.png);font-size: 0;
}

如没去掉文字,内容为:

image-20231025110727951

加入 font-size: 0;后:

image-20231025110817993

06-header区域-导航

实现方法:

  • 标签结构:ul > li * 3 > a
  • 优势:避免堆砌 a 标签网站搜索排名降级

1680337390943

HTML结构

<ul><li><a href="#" class="active">首页</a></li><li><a href="#">课程</a></li><li><a href="#">职业规划</a></li>
</ul>

CSS样式

/* 导航 */
.nav {margin-left: 102px;
}.nav ul {display: flex;
}.nav li {margin-right: 24px;
}.nav li a {display: block;padding: 6px 8px;line-height: 27px;font-size: 19px;
}/* actvie 类选择器,表示默认选中的a */
.nav li .active,
.nav li a:hover {border-bottom: 2px solid #00a4ff;
}

示例:

1、三个li标签要在一行,并且logo与字要有边距,是用的是display: flex;

image-20231025112536299

image-20231025113045905

2、改变字大小,间隔。

image-20231025114108736

3,为“首页”添加下划蓝线,而“课程”、“职业规划”当使用鼠标贴在字上也可以显示蓝线。

image-20231025114203925

07-header区域-搜索布局

1680337525496

HTML结构

<div class="search"></div>

CSS样式

.search {display: flex;margin-left: 64px;padding-left: 19px;padding-right: 12px;width: 412px;height: 40px;background-color: #f3f5f7;border-radius: 20px;
}

1、可以分步编写,先把输入框与“用户”输出出来,后续再调整位置。

/* 搜索 */
.search{margin-left: 64px;padding-left: 19px;padding-right: 12px;width: 412px;height: 48px;background-color: #f3f5f7;border-radius: 20px;
}

image-20231025114923440

2、设置好焦点框的透明和提醒的文字。

image-20231025115734663

08-header区域-搜索内容

HTML结构

<!-- 搜索 -->
<div class="search"><input type="text" placeholder="请输入你查询的内容"><a href="#"></a>
</div>

CSS样式

.search input {flex: 1;border: 0;background-color: transparent;/* 去掉表单控件的焦点框 */outline: none;
}/* ::placeholder 选中就是 placeholder 属性文字样式*/
.search input::placeholder {font-size: 14px;color: #999;
}/* 父级是flex布局,子级变弹性盒子:加宽高生效 */
.search a {align-self: center;width: 16px;height: 16px;background-image: url(../images/search.png);
}

image-20231026113209455

09-header区域-用户区域

1680337703358

HTML结构

<!-- 用户 -->
<div class="user"><a href="#"><img src="./uploads/user.png" alt=""><span>波仔学前端</span></a>
</div>

CSS样式

/* 用户 */
.user {margin-left: 32px;margin-top: 4px;
}.user img {margin-right: 7px;/* vertical-align 行内块和行内垂直方向对齐方式 */vertical-align: middle;
}.user span {font-size: 16px;color: #666;
}

1、设置水平和垂直间距。

/* 用户 */
.user{margin-left: 32px;margin-top: 4px;
}

image-20231026113118554

2、设置元素的垂直对齐方式为居中

.user img{vertical-align: middle;
}

image-20231026113502613

3、最后完善代码,将用户的文本信息以灰色字体显示在头像下方。

.user img{/* vertical-align 行内块和行内垂直方向对齐方式 */vertical-align: middle;
}.user span{font-size: 16px;color: #666;
}

image-20231026113732829

10-banner区域-布局

1680337778559

HTML结构

<div class="banner"><div class="wrapper"><div class="left">left</div><div class="right">right</div></div>
</div>

CSS样式

/* banner 区域 */
.banner {height: 420px;background-color: #0092cb;
}.banner .wrapper {display: flex;justify-content: space-between;height: 420px;background-image: url(../uploads/banner.png);
}

1、先加蓝色底色。

/* banner */
.banner{height: 420px;background-color: #0092cb;
}/* 版心 */
.wrapper{margin: 0 auto;width: 1200px;
}
	<body><!-- banner区域  --><div class="banner"><div class="wrapper"></div></div></body>

image-20231026114404349

2、通栏里面套版心。

.banner .wrapper{height: 420px;background-image: url(../uploads/banner.png);
}

image-20231026114609831

3、给两个侧边栏设left和right,腾出位置。

.banner .wrapper{display: flex;height: 420px;background-image: url(../uploads/banner.png);
}

image-20231026115123275

4、设置水平间距为等分空间。

.banner .wrapper{display: flex;justify-content: space-between;/*在弹性布局容器中,子元素之间的水平间距为等分空间。*/height: 420px;background-image: url(../uploads/banner.png);
}

image-20231026115300660

11-banner区域-侧导航

HTML结构

<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>

CSS样式

/* 侧导航 */
.banner .left {padding: 3px 20px;width: 191px;height: 420px;background-color: rgba(0,0,0,0.42);
}.banner .left a {/* 块级:宽度是父级的100% */display: block;height: 46px;background: url(../images/right.png) no-repeat right center;line-height: 46px;font-size: 16px;color: #fff;
}.banner .left a:hover {background-image: url(../images/right-hover.png);color: #00a4ff;
}

1、设置该元素的背景颜色为半透明的黑色。

.banner .left{width: 191px;height: 420px;background-color: rgba(0, 0, 0, 0.42);
}

image-20231026140828530

2、由于我们想要的样式并不是在左上角,而是分几行,且居中。

<!-- 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="#">前端开发</a></li></ul></div><div class="right">right</div></div></div>
.banner .left{padding: 3px 20px;width: 191px;height: 420px;background-color: rgba(0, 0, 0, 0.42);
}

image-20231026141257472

3、拉长边距。

.banner .left a{/* 块级:宽度就是父级的100% */display: block;height: 46px;line-height: 46px;font-size: 16px;color: #fff;
}

image-20231026141618746

4、开始设计箭头。

.banner .left a{/* 块级:宽度就是父级的100% */display: block;height: 46px;background: url(../images/right.png) no-repeat right center;line-height: 46px;font-size: 16px;color: #fff;
}

image-20231026142027247

5、设置悬停。

/* banner左边悬停变色 */
.banner .left a:hover{background-image: url(../images/right-hover.png);color: #00a4ff;
}

image-20231026142434661

12-banner区域-课程表布局

1680338145736

HTML布局

<div class="right"><h3>我的课程表</h3><div class="content">1</div>
</div>

CSS样式

/* 课程表 */
.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;font-size: 15px;color: #fff;font-weight: 400;
}.banner .right .content {padding: 14px;height: 257px;background-color: #fff;border-radius: 10px;
}

1、初步设计。

/* banner 右边课程表 */
.banner .right{margin-top: 60px;width: 218px;height: 305px;background-color: #209dd5;border-radius: 10px;
}

image-20231026143538645

<div class="right"><h3>我的课程表</h3>
</div>

2、设置元素的样式。

.banner .right h3{margin-left: 14px;height: 48px;line-height: 48px;font-size: 15px;color: #fff;font-weight: 400;
}

image-20231026144005048

3、去生成装课程的框。

<div class="right"><h3>我的课程表</h3><div class="content">1</div>
</div>
.banner .right .content{height: 257px;background-color: #fff;border-radius: 10px;
}

image-20231026144254750

13-banner区域-课程表内容

HTML结构

<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>

CSS样式

.banner .right dl {margin-bottom: 12px;border-bottom: 1px solid #e0e0e0;
}.banner .right dt {margin-bottom: 8px;font-size: 14px;line-height: 20px;font-weight: 700;
}.banner .right dd {margin-bottom: 8px;font-size: 12px;line-height: 16px;
}.banner .right dd span {color: #00a4ff;
}.banner .right dd strong {color: #7d7d7d;font-weight: 400;
}

1、初步在框里面填写数据。

<div class="right"><h3>我的课程表</h3><div class="content"><dl><dt>数据可视化课程</dt><dd><span>正在学习</span>-<strong>echarts使用步骤</strong></dd></dl><dl><dt>数据可视化课程</dt><dd><span>正在学习</span>-<strong>echarts使用步骤</strong></dd></dl><dl><dt>数据可视化课程</dt><dd><span>正在学习</span>-<strong>echarts使用步骤</strong></dd></dl></div></div>

image-20231026145643300

2、对每个课程底下加上分割线。

/* 分割线 */
.banner .right dl{margin-bottom: 12px;border-bottom: 1px solid #e0e0e0;
}

image-20231026150207029

3、把课程表标题样式搞好。

/* 课程表标题 */
.banner .right dt{margin-bottom: 8px;font-size: 14px;line-height: 20px;font-weight: 700;
}

image-20231026150341237

4、设计正在学习这一行字的样式。

/* 小字样式 */
.banner .right dd{margin-bottom: 8px;font-size: 12px;line-height: 16px;
}

image-20231026150610806

5、改正在学习的颜色样式。

/* 改正在学习的颜色样式 */
.banner .right dd span{color: #00a4ff;
}

image-20231026150826485

6、学习内容不再加粗。

/* 学习内容不再加粗 */
.banner .right dd strong{color: #7d7d7d;font-weight: 400;
}

image-20231026151231185

14-banner区域-全部课程

HTML结构

<a href="#">全部课程</a>

CSS样式

.banner .right a {display: block;height: 32px;background-color: #00a4ff;text-align: center;line-height: 32px;font-size: 14px;color: #fff;border-radius: 15px;
}

1、加入全部课程。

<a href="#">全部课程</a>
/* 加入全部课程 */
.banner .right a{display: block;height: 32px;background-color: #00a4ff;
}

image-20231026151532322

2、再加入圆角和水平、垂直居中。

/* 加入全部课程 */
.banner .right a{display: block;height: 32px;line-height: 32px;background-color: #00a4ff;text-align: center;border-radius: 15px;
}

image-20231026151707325

3、修改“全部课程”这四个字的样式。

/* 加入全部课程 */
.banner .right a{display: block;height: 32px;line-height: 32px;background-color: #00a4ff;text-align: center;border-radius: 15px;font-size: 14px;color: #fff;
}

image-20231026152044693

15-精品推荐-区域布局

1680338252106

HTML结构

<!-- 精品推荐 -->
<div class="recommend wrapper"><h3>精品推荐</h3><ul><li><a href="#">HTML</a></li></ul><a href="#" class="modify">修改兴趣</a>
</div

CSS样式

/* 精品推荐 */
.recommend {display: flex;margin-top: 11px;padding: 0 20px;height: 60px;background-color: #fff;box-shadow: 0px 1px 2px 0px rgba(211, 211, 211, 0.5);line-height: 60px;
}

1、给精品区域留出位置。

<!-- 精品区域 --><div class="recommend wrapper">1</div>

image-20231027170929457

2、框出位置。

/* 精品推荐 */
.recommend{height: 60px;background-color: #fff;box-shadow: 0px 1px 2px 0px rgba(211, 211, 211, 0.5);
}

image-20231027171148399

3、设置元素的行高,并且把元素的上外边距、内边距设置好。

/* 精品推荐 */
.recommend{margin-top: 60px;padding: 0 20px;height: 60px;background-color: #fff;box-shadow: 0px 1px 2px 0px rgba(211, 211, 211, 0.5);line-height: 60px;
}

image-20231027171412258

4、把修改兴趣挤到最右侧并设置元素的阴影效果。

<!-- 精品区域 --><div class="recommend wrapper"><h3>精品推荐</h3><ul><li><a href="#">HTML</a></li></ul><a href="#">修改兴趣</a></div>
/* 精品推荐 */
.recommend{display: flex;margin-top: 60px;padding: 0 20px;height: 60px;background-color: #fff;box-shadow: 0px 1px 2px 0px rgba(211, 211, 211, 0.5);line-height: 60px;
}.recommend ul{/* 除去标题和修改兴趣的尺寸,父级剩余尺寸都给ul,实现把修改兴趣挤到最右侧 */flex: 1;
}

image-20231027172046857

5、修改好精品推荐的颜色。

.recommend h3{font-size: 18px;color: #00a4ff;font-weight: 400;
}

image-20231027172431230

6、将无序列表元素设置为弹性布局容器,使其子元素可以按照弹性盒子模型进行布局。设置无序列表的弹性盒子模型的主轴方向上的尺寸为1,即占据剩余的空间。这样可以实现把修改兴趣挤到最右侧的效果。

<!-- 精品区域 --><div class="recommend wrapper"><h3>精品推荐</h3><ul><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li><li><a href="#">HTML</a></li></ul><a href="#">修改兴趣</a></div>
.recommend ul{/* 除去标题和修改兴趣的尺寸,父级剩余尺寸都给ul,实现把修改兴趣挤到最右侧 */display: flex;flex: 1;
}

image-20231027172637225

16-精品推荐-内容样式

HTML结构

<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>

CSS样式

.recommend h3 {font-size: 18px;color: #00a4ff;font-weight: 400;
}.recommend ul {/* 除去标题和修改兴趣的尺寸,父级剩余尺寸都给ul,实现把修改兴趣挤到最右侧 */flex: 1;display: flex;
}.recommend ul li a {padding: 0 24px;border-right: 1px solid #e0e0e0;font-size: 18px;
}.recommend ul li:last-child a {border-right: 0;
}.recommend .modify {font-size: 16px;color: #00a4ff;
}

1、设置链接元素的内边距来增加链接与文本之间的间距。再设置链接元素的右边框。最后设置一个无序列表项中的链接元素的样式。

2、将最后一个无序列表项中的链接元素的右边框设置为无边框。这样可以避免最后一个链接元素与其父级无序列表项之间出现多余的边框。

.recommend ul li a{padding: 0 24px;border-right: 1px solid #e0e0e0;
}.recommend ul li:last-child a{border-right: 0;
}

image-20231031094206800

3、修改兴趣的字体大小与颜色。

<a href="#" class="modify">修改兴趣</a>
.recommend .modify{font-size: 16px;color: #00a4ff;
}

image-20231031095412105

17-推荐课程-标题区域

1680338517515

HTML结构

<!-- 精品推荐课程 -->
<div class="course wrapper"><!-- 标题 --><div class="hd"><h3>精品推荐</h3><a href="#" class="more">查看全部</a></div><!-- 内容 --><div class="bd">1</div>
</div>

CSS样式

/* 推荐课程 */
.course {margin-top: 15px;
}/* 标题 - 公共类,与其他区域共用 */
.hd {display: flex;justify-content: space-between;height: 60px;line-height: 60px;
}.hd h3 {font-size: 21px;font-weight: 400;
}.hd .more {padding-right: 20px;background: url(../images/more.png) no-repeat right center;font-size: 14px;color: #999;
}

1、设置背景图片,将背景图片定位在元素的右侧中间位置。

<!-- 精品推荐课程 --><div class="course wrapper"><!-- 标题 --><div class="hd"><h3>精品推荐</h3><a href="#" class="more">查看全部</a></div><!-- 内容 --><div class="bd"></div></div>
/* 推荐课程 */
.course{margin-top: 15px;
}/* 标题 - 公共类,与其他区域共用 */
.hd{display: flex;justify-content: space-between;height: 60px;line-height: 60px;
}.hd h3{font-size: 21px;font-weight: 400;
}.hd .more{padding-right: 20px;background:url(../images/more.png) no-repeat right center;font-size: 14px;color: #999;
}

image-20231105141328372

快捷键如下:

如:ul>li*5 按住tab键即可快速建立5个li标签

18-推荐课程-内容布局

HTML结构

<ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li>
</ul>

CSS样式

/* 课程内容 - 公共类 */
.bd ul {display: flex;flex-wrap: wrap;justify-content: space-between;
}.bd li {margin-bottom: 14px;width: 228px;height: 271px;background-color: pink;
}

1、将一个无序列表设置为弹性布局,并允许项目在需要时换行。

<!-- 精品推荐课程 --><div class="course wrapper"><!-- 标题 --><div class="hd"><h3>精品推荐</h3><a href="#" class="more">查看全部</a></div><!-- 内容 --><div class="bd"><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul></div></div>
/* 课程内容-公共类 */
.bd ul{display: flex;flex-wrap: wrap;
}.bd li{width: 228px;height: 271px;background-color: pink;
}

image-20231105142358105

2、在主轴上将元素之间的空白区域均匀分布,并在两端留有相等的空间。

/* 课程内容-公共类 */
.bd ul{display: flex;flex-wrap: wrap;justify-content: space-between;
}.bd li{width: 228px;height: 271px;background-color: pink;margin-bottom: 14px;
}

image-20231105142648364

19-推荐课程-内容样式

HTML结构

<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/course02.png" alt=""></div><div class="text"><h4>Vue.js实战——面经全端项目</h4><p><span>高级</span> · <i>2726</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course03.png" alt=""></div><div class="text"><h4>玩转Vue全家桶,iHRM人力资源项目</h4><p><span>高级</span> · <i>9456</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course04.png" alt=""></div><div class="text"><h4>Vue.js实战医疗项目——优医问诊</h4><p><span>高级</span> · <i>7192</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course05.png" alt=""></div><div class="text"><h4>小程序实战:小兔鲜电商小程序项目</h4><p><span>高级</span> · <i>2703</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course06.png" alt=""></div><div class="text"><h4>前端框架Flutter开发实战</h4><p><span>高级</span> · <i>2841</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course07.png" alt=""></div><div class="text"><h4>熟练使用React.js——极客园H5项目</h4><p><span>高级</span> · <i>95682</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course08.png" alt=""></div><div class="text"><h4>熟练使用React.js——极客园PC端项目</h4><p><span>高级</span> · <i>904</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course09.png" alt=""></div><div class="text"><h4>前端实用技术,Fetch API 实战</h4><p><span>高级</span> · <i>1516</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/course10.png" alt=""></div><div class="text"><h4>前端高级Node.js零基础入门教程</h4><p><span>高级</span> · <i>2766</i>人在学习</p></div></a></li>
</ul>

CSS样式

.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;
}.bd li .text p i {font-style: normal;
}

1、将两个部分分出来。

<li><div class="pic">1</div><div class="text">2</div>
</li>
.bd li .pic{height: 156px;
}.bd li .text{height: 115px;background-color: #fff;
}

image-20231105143421066

2、将图片及文字附上去。

<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>

image-20231105144511611

3、同样的li复制十个即可。

.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;
}.bd li .text p i{font-style: normal;
}

image-20231105165751158

20-前端开发工程师区域

1680339112336

HTML结构

<!-- 前端 -->
<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/web01.png" alt=""></div><div class="text"><h4>JS高级javaScript进阶面向对象ES6</h4><p><span>高级</span> · <i>101937</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/web02.png" alt=""></div><div class="text"><h4>零基础玩转微信小程序</h4><p><span>高级</span> · <i>133781</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/web03.png" alt=""></div><div class="text"><h4>JavaScript基础——语法解析+项目实战</h4><p><span>高级</span> · <i>8927</i>人在学习</p></div></a></li><li><a href="#"><div class="pic"><img src="./uploads/web04.png" alt=""></div><div class="text"><h4>前端框架Vue2+Vue3全套视频</h4><p><span>高级</span> · <i>26022</i>人在学习</p></div></a></li></ul></div></div></div>
</div>

CSS样式

/* 前端 */
.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: pink; */
}.bd .right .top {margin-bottom: 15px;height: 100px;
}

1、设置中间栏。

<!-- 前端  --><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>
/* 前端 */
.hd ul{display: flex;
}.hd li{margin-right: 60px;font-size: 16px;
}.hd li .active{color:#00a4ff;
}

image-20231105171138567

1、将框规划出来。

<!-- 身体 -->
<div class="bd"><div class="left">left</div><div class="right">right</div>
</div>
.bd{display: flex;/* 主轴对齐 */justify-content: space-between;
}.bd .left{width: 228px;background-color: pink;
}.bd .right{width: 957px;background-color: pink;
}

image-20231105171651324

2、将图片进行插入。

<!-- 身体 --><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></ul></div></div></div>

image-20231105172220195

3、设置边距。

.bd .right top{height: 100px;margin-bottom: 15px;
}

image-20231105174835635

21-版权-布局

1680339154682

HTML结构

<!-- 版权 -->
<div class="footer"><div class="wrapper"><div class="left">left</div><div class="right">right</div></div>
</div>

CSS样式

/* 版权 */
.footer {margin-top: 60px;padding-top: 60px;height: 273px;background-color: #fff;
}.footer .wrapper {display: flex;justify-content: space-between;
}.footer .left {width: 440px;background-color: pink;
}

1、初步设计。

<!-- 版权  --><div class="footer"><div class="wrapper"><div class="left">left</div><div class="right">right</div></div></div>
/* 版权 */
.footer{margin-top: 60px;padding-top: 60px;height: 273px;background-color: #fff;
}.footer .wrapper{display: flex;justify-content: space-between;
}.footer .left{width: 440px;background-color: pink;
}

image-20231105175206519

22-版权-内容

HTML结构

<div class="left"><a href="#"><img src="./images/logo.png" alt=""></a><p>学成在线致力于普及中国最好的教育它与中国一流大学和机构合作提供在线课程。© 2017年XTCG Inc.保留所有权利。-沪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><dd><a href="#">工作机会</a></dd><dd><a href="#">客户服务</a></dd><dd><a href="#">帮助</a></dd></dl><dl><dt>新手指南</dt><dd><a href="#">如何注册</a></dd><dd><a href="#">如何选课</a></dd><dd><a href="#">如何拿到毕业证</a></dd><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>

CSS样式

.footer .left p {margin-top: 24px;margin-bottom: 14px;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;
}

1、插入文字。

<!-- 版权  --><div class="footer"><div class="wrapper"><div class="left"><a href="#"><img src="images/logo.png" alt=""></a><p>学成在线致力于普及中国最好的教育它与中国一流大学和机构合作提供在线课程。© 2017年XTCG Inc.保留所有权利。-沪ICP备15025210号</p><a href="#" class="download">下载APP</a></div><div class="right">right</div></div></div>

image-20231105175636435

2、改变字体大小和边距。

.footer .left p{margin-top: 24px;margin-bottom: 14px;font-size: 12px;line-height: 17px;color: #666;
}

image-20231105175924151

3、设置框。

.footer .left .download{display: block;width: 120px;height: 36px;border: 1px solid #00a4ff;text-align: center;line-height: 34px;font-size: 16px;color: #00a4ff;
}

image-20231105180224059

4、将右边的三类文字放进去。

<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>
.footer .right{display: flex;
}

image-20231105180613885

5、统一改好边距。

.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;
}

image-20231105180944645

相关文章:

Web前端—网页制作(以“学成在线”为例)

版本说明 当前版本号[20231105]。 版本修改说明20231105初版 目录 文章目录 版本说明目录day07-学成在线01-项目目录02-版心居中03-布局思路04-header区域-整体布局HTML结构CSS样式 05-header区域-logo06-header区域-导航HTML结构CSS样式 07-header区域-搜索布局HTML结构CSS…...

Hive【Hive(八)自定义函数】

自定义函数用的最多的是单行函数&#xff0c;所以这里只介绍自定义单行函数。 Coding 导入依赖 <dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>3.1.3</version></dependency>…...

linux远程桌面管理工具xrdp

一、概述 我们知道&#xff0c;我们日常通过vnc来远程管理linux图形界面&#xff0c;今天分享一工具Xrdp&#xff0c;它是一个开源工具&#xff0c;允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP之外&#xff0c;xrdp工具还接受来自其他RDP客户端的连接&#xf…...

100天精通Python(可视化篇)——第106天:Pyecharts绘制多种炫酷桑基图参数说明+代码实战

文章目录 专栏导读一、桑基图介绍1. 桑基图是什么?2. 桑基图应用场景?二、桑基图配置选项1. 导包2. add函数3. 分层设置三、桑基图基础1. 普通桑基图2. 修改标签位置3. 修改节点布局方向4、月度开支桑基图书籍推荐专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就…...

什么是OTP认证?OTP认证服务器有哪些应用场景?

OTP是一次性密码&#xff0c;即只能使用一次的密码。它基于专门的算法&#xff0c;每隔60秒生成一个不可预测的随机数字组合。这种密码的有效期仅在一次会话或交易过程中&#xff0c;因此不容易受到重放攻击。在计算器系统或其他数字设备上&#xff0c;OTP是一种只能使用一次的…...

shell_73.Linux使用新 shell 启动脚本

每次启动新 shell&#xff0c;bash shell 都会运行.bashrc 文件。①对此进行验证&#xff0c;可以使用这种方法&#xff1a;在 主目录下的.bashrc 文件中加入一条简单的 echo 语句&#xff0c;然后启动一个新 shell。 $ cat $HOME/.bashrc # .bashrc # Source global definiti…...

【领域驱动设计】聚合

从战术设计上&#xff0c;DDD 最值得借鉴的就是聚合根 什么是聚合 将实体和值对象在一致性边界之内组合聚合 这里的一致性包括 1、业务概念的完整性 2、业务规则的一致性&#xff1a;多个实体需要在一次操作中保持某种一致性&#xff08;修改 A&#xff0c;同步必须修改 B&a…...

WiFi模块在智能家居中的应用与优化

智能家居技术的迅速发展已经改变了我们对家庭的定义。WiFi模块作为智能设备连接的核心&#xff0c;扮演着连接和控制智能家居生态系统的关键角色。本文将深入研究WiFi模块在智能家居中的应用&#xff0c;同时探讨如何通过优化来提升其性能和用户体验。 1. 智能家居中WiFi模块的…...

LeetCode75——Day27

文章目录 一、题目二、题解 一、题目 933. Number of Recent Calls You have a RecentCounter class which counts the number of recent requests within a certain time frame. Implement the RecentCounter class: RecentCounter() Initializes the counter with zero r…...

P6462补刀

灵光一现,突然就做出来了 正好写一下思路过程 一开始寻思是个数论的问题,貌似需要用到扩展欧几里得,不管那么多,直接写上,接着不断缝缝补补修修改改,此处省略一小时.... 做不出来....好难受 星期天,无聊,做个题.. 突然,不对啊 这个题实际上不就是我当前打还是不打的一个选…...

Python教程---Python交互界面

当我们通过命令行来输入Python&#xff0c;所进入到的界面就是Python的交互界面 结构&#xff1a; 版本和版权声明&#xff1a; Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright"…...

基于计算机视觉的身份证识别系统 计算机竞赛

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-sen…...

[python] logging输出到控制台(标准输出)

要将logging.info输出到控制台&#xff08;标准输出&#xff09;&#xff0c;可以使用以下代码&#xff1a; import logging# 创建一个logger对象 logger logging.getLogger(__name__)# 创建一个控制台处理器 console_handler logging.StreamHandler()# 设置控制台处理器的输…...

uniapp 离线打包 google 登录

官方文档&#xff1a; Oauth 模块 | uni小程序SDK 其中有 clientid 和反向url clientid 是 xxxx.apps.googleusercontent.com 反向url 是 com.googleusercontent.apps.xxx...

【实战Flask API项目指南】之一 概述

实战Flask API项目指南之 概述 本系列文章将带你深入探索实战Flask API项目指南&#xff0c;通过跟随小菜的学习之旅&#xff0c;你将逐步掌握Flask在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧&#xff01; 前言 小菜是一个Python编程爱好者&#xff0c;他目前…...

AD面试总结

文章目录 CK的面试1.自我介绍2.学习动机3.一天花多久时间4.兴趣爱好5.sql5.1 第二周那道题5.2 对时间盲注和布尔盲注的简单介绍5.3 盲注中可以替代sleep的替代函数 6.反序列化6.1 列举几个函数的触发时机6.2 __wakeup绕过的多种方法6.3 GC垃圾回收机制 7.死亡exit8.mysql8.1.练…...

从今年最硬科幻游戏中的思考

前言 最近有一款“完蛋&#xff0c;我被美女包围了”游戏火爆了&#xff0c;steam上一度达到排行榜第一最低也能到第八&#xff08;销量据说到了100万份&#xff09;&#xff0c;接下来分享一下自己对于这一款游戏的思考&#xff0c;如果有其他想法&#xff0c;随时可以联系沟…...

Linux多值判断利用case...esac判断

利用这个判断&#xff0c;一定要注意格式的运用&#xff0c;非常容易出错 case $1 in #判断变量的值 "hello") #双引号注意&#xff0c;右括号 echo " afdbab " #语句段&#xff0c;没啥说的 ;; #两个分号结束第一个判断&#xff0c…...

【教3妹学编程-算法题】重复的DNA序列

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开心呀。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;阳光明媚、万里无云、秋高气爽&#xff0c;适合秋游。 2哥&…...

jetsonTX2 nx配置yolov5和D435I相机,完整步骤

转载一篇问题解决博客&#xff1a;问题解决 一、烧录系统 使用SDK烧录 二、安装archiconda3 JETSON TX2 NX的架构是aarch64,与win10,linxu不同,所以不能安装Anaconda&#xff0c;这里安装对应的archiconda。 1. 安装 wget https://github.com/Archiconda/build-tools/rel…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...