HTML5项目练习——学成在线

298 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情


项目说明

说明项具体内容
项目简介企业级网页,课程学习平台
技术栈HTML 、CSS
重要知识点CSS网页布局结构 、CSS浮动布局


重点知识


版心

网页通常有版心来控制整体的页面位置, 通常居中设置

将版心的样式统一定义在 w 类名中,需要的地方就添加该类名


增加 a 链接的触发范围

将 a 转换为块级元素,增加触发范围


【横向分割线】和 【竖向分割线】

【横向分割线】导航块下划线效果: 导航下划线比盒子内容稍宽,可以用padding控制,这样配合盒子下边框皆可画出下划线效果

此时不需要将 a 链接 转换为块级元素

【竖向分割线】导航块分割线效果: 格子分割线的高度需要根据内容高度变化调整

此时不需要将 a 链接 转换为块级元素 ---- 格子分割线的高度需要根据内容高度变化调整,因此保留 a 行内元素的特点 (如果转换为块级元素,高度将会继承父级高度,竖向分割线高度会有整个盒子那么高)


箭头图标

箭头图标做法有多种: 1. 添加背景图片 | 2. 文字图标


图片和配文中线垂直对齐

图片和配文中线垂直对齐: 通过 vertical-align: middle 设置


不设高度的浮动布局

不设高度的浮动布局: 课程盒子板块的布局模式为浮动布局, 父盒子不设置高度,根据盒子数量撑开父盒子,按需调整高度


清除浮动

当浮动布局影响其他盒子的布局时,需要对清除浮动布局的影响

给浮动元素的父元素添加清除浮动的 clearfix 类名 (此处给 ul 添加)

清除浮动有固定的代码包,直接引入即可


保证一行排列合适的盒子数量

保证一行排列合适的盒子数量:当盒子之间设置的margin间距时,一行中原本的盒子宽度加起来将会超过版心的高度,导致盒子掉落至第二行中。

  • 此时可以稍微将该模块的父盒子稍微加大一点,确保一行能够排下足够多盒子
  • 或者将每行盒子最后一个的margin距离单独去除掉

自定义列表的使用

<dl> 标签用于定义描述列表(或定义列表),该标签会与 <dt>(定义项目/名字)和 <dd>(描述每一个项目/名字)一起使用。



整体结构与代码


整体部分

网页一共分成五大模块:头部模块 | banner模块 | 课程导航模块 | 核心内容模块 | 底部模块

先书写统一的样式,统一去除一些元素自带的样式

* {
    margin: 0;
    padding: 0;
    /* CSS3 盒子模型 */
    box-sizing: border-box;
}
​
/* 先统一去除一些元素自带的样式 */
li {
    list-style: none;
}
​
a {
    text-decoration: none;
}
​
body {
    background-color: #f3f5f7;
}

确定版心

网页通常有版心来控制整体的页面位置, 通常居中设置

将版心的样式统一定义在 w 类名中,需要的地方就添加该类名


.w {
    width: 1200px;
    margin: auto;
}

Part1—头部模块

1669822046122.png

HTML

头部模块分为四个板块: logo板块 | 导航栏板块 | 搜索框板块 | 用户板块

CSS

重点:

① 将 a 转换为块级元素,增加触发范围

② 【横向分割线】导航块下划线效果: 导航下划线比盒子内容稍宽,可以用padding控制,这样配合盒子下边框皆可画出下划线效果

箭头图标做法有多种: 1. 添加背景图片 | 2. 文字图标

图片和配文中线垂直对齐: 通过 vertical-align: middle 设置


Part2—banner模块

1669822337206.png

HTML

banner模块分为三个板块: 轮播图板块 | 左侧导航栏板块 | 右侧课程表窗口板块

轮播图板块居中,左侧导航栏板块通过浮动布置在左侧,右侧课程表窗口板块通过浮动布置在右侧


Part3—课程导航模块

1669822436352.png

HTML

课程导航模块分为三个部分: 精品推荐标题 | 具体课程系列 | 修改兴趣入口

CSS

【竖向分割线】导航块分割线效果: 格子分割线的高度需要根据内容高度变化调整

此处不需要将 a 链接 转换为块级元素 ---- 格子分割线的高度需要根据内容高度变化调整,因此保留 a 行内元素的特点 (如果转换为块级元素,高度将会继承父级高度,竖向分割线高度会有整个盒子那么高)


Part4—核心内容模块

1669822599218.png

1669822611658.png

HTML

核心内容模块分为上下两部分: 导航标题栏 | 课程盒子板块

CSS

重点:

① 不设高度的浮动布局: 课程盒子板块的布局模式为浮动布局, 父盒子不设置高度,根据盒子数量撑开父盒子,按需调整高度

② 清除浮动:当浮动布局影响其他盒子的布局时,需要对清除浮动布局的影响

③ 保证一行排列合适的盒子数量:当盒子之间设置的margin间距时,一行中原本的盒子宽度加起来将会超过版心的高度,导致盒子掉落至第二行中。

  • 此时可以稍微将该模块的父盒子稍微加大一点,确保一行能够排下足够多盒子
  • 或者将每行盒子最后一个的margin距离单独去除掉

清除浮动

给浮动元素的父元素添加清除浮动的 clearfix 类名 (此处给 ul 添加)

清除浮动有固定的代码包,直接引入即可


/* 清除浮动的代码包 */
.clearfix:before,
.clearfix:after {
    content: "";
    display: table;
}
​
.clearfix:after {
    clear: both;
}
​
.clearfix {
    *zoom: 1;
}

Part5—底部模块

1669822390434.png

HTML

核心内容模块分为左右两部分: 版权声明板块 | 外部链接板块

重点:

① 自定义列表的使用

<dl> 标签用于定义描述列表(或定义列表),该标签会与 <dt>(定义项目/名字)和 <dd>(描述每一个项目/名字)一起使用。