15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > Part1 HTML网页开发 模块3

Part1 HTML网页开发 模块3

时间:2023-10-03 07:00:01 | 来源:网站运营

时间:2023-10-03 07:00:01 来源:网站运营

Part1 HTML网页开发 模块3:
文章内容输出来源:拉勾教育大前端就业集训营

模块3:PC 端静态网页应用开发及项目

网页开发是前端人最基本的工作内容之一,此模块将带你利用当前掌握的 HTML + CSS 进行网站应用的静态页面部分开发,学习实际开发过程中的工作流程以及常见的开发规范,同时带你掌握网页开发过程中的网页制作技巧,为后面高级部分的学习打下坚实的基础。

一、网页项目开发流程

二、页面开发常见概念和布局流程

1、为什么要了解这些?

阅读报纸时我们会发现,虽然其中内容很多很丰富,但是经过合理的排版布局,版面整体依然清晰、易读。同样,在制作网页过程中,如果要让页面结构清晰、有条理,也需要对网页内容进行“排版”。

2、常见概念

版心是指网页中主要内容所在的区域。一般在浏览器窗口中水平居中显示,从而让用户的视线更集中。常见的版心宽度值包括960px、980px、1000px、1200px等。

制作方法:使用标准流中的margin居中方法。

实例

3、页面布局流程

为了高网页制作的效率,布局时通常要遵守一定的布局流程,具体如下:

确定页面的版心(可视区域);

分析页面中的行模块,以及每个行模块中的列模块

制作 HTML页面,CSS文件;

CSS初始化,然后开始运用盒子模型的原理,通过DIV+CSS布局来控制网页的各个模块。

4、常见的布局类型

一列,定宽,居中
两列,左窄右宽型
通栏平均分布型
更多的情况,一个网页中可能同时包括2种以上的布局类型。例如拉勾网首页:包含两列左窄右宽型、通栏平均分布型。

三、拉勾网项目分析

网页开发常用技巧和方法

1、搭建-文件结构

网站中会包含多个.html文件和.css文件以及图片等多媒体文件,我们需要使用不同的文件夹分类进行管理。

文件夹最基本的结构包括:

index.html一般为启动页

2、<head>标签内部配置

①配置-<title>标题

②link-标签页小图标

大部分网站在标签页标题位置会添加网站的icon图标;

图标的文件名要求以favicon.ico命名,文件需要与index.html文件同级存储;

语法:

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">③CSS分级引入

css文件设置需要根据功能进行分层管理:

目的是为了提取出多个页面公共的部分,提供多个HTML同时引用。公共的部分也可以划分范围,有的是所有网站能用的,有的是某几个网站公共的部分。

Css常见的分层组织:

清除默认样式的css-网站的公共样式css-每个页面自己独有的csso注意书写顺序

引入多层css时,需要按照后面的层叠前面的css进行设置,使用页面独有的样式层叠公共的样式

3、<header>区域样式

①base.css

项目初始化样式:项目统一定义的样式规则;

项目公共样式:项目反复多次出现的样式。

②header区域

实例效果
/* 项目公共样式 *//* -header区域- */.header{ width: 100%; height: 40px; line-height: 40px; background-color: #32373E;}.header_c{ height: 40px;}/* header 左侧 */.header_c .header_left{ float: left;}/* LOGO区域 */.header_c .header_left .logo{ /* 定位和文档流 */ float: left; /* 盒模型属性 */ width: 43px; height: 31px; padding-top: 9px; margin-right: 34px;}.header_c .header_left .logo a{ display: block; width: 100%; height: 21px; background: url(../images/logo.png) no-repeat 0 0; text-indent: -999em; overflow: hidden;}/* 城市选择 */.header_c .header_left .city{ float: left; width: 110px; margin-right: 34px; cursor:pointer;}.header_c .header_left .city span{ margin-right: 12px; color: #20CA9F;}.header_c .header_left .city i{ font-size: 12px; color: #AFB5C0;}.header_c .header_left .city:hover i{ color: #ffffff;}/* 导航区域 */.header_c .header_left .nav{ float: left;}.header_c .header_left .nav li{ float: left;}.header_c .header_left .nav li a{ display: block; position: relative; padding: 0 20px; color: #AFB5C0;}.header_c .header_left .nav li a:hover{ color: #ffffff;}.header_c .header_left .nav li.current a{ color: #ffffff; background-color: #000000;}.header_c .header_left .nav li a .tips{ position: absolute; top: 3px; right: -2px; width: 29px; height: 18px; border-radius: 25% / 50%; line-height: 18px; color: #FFFFFF; background-color: #FF7452;}/* header 右侧 */.header_c .header_right{ float: right;}.header_c .header_right a{ float: left; color: #AFB5C0;}.header_c .header_right a:hover{ color: #FFF;}.header_c .header_right .upload{ margin-right: 23px;}.header_c .header_right .subscribe{ margin-right: 66px;}.header_c .header_right .login{ position: relative;}.header_c .header_right .login::before{ content: ''; position: absolute; top: 50%; display: block; width: 18px; height: 18px; transform: translate(-26px,-50%); background: url(../images/sprite_01.png) no-repeat -76px -136px;}.header_c .header_right .login:hover::before{ background-position: -76px -174px;}.header_c .header_right span{ float: left; margin: 0 8px; color: #5E5A50;}.header_c .header_right .register{ margin-right: 50px;}.header_c .header_right .app{ position: relative; margin-right: 20px; color: #00C295;}.header_c .header_right .app::before{ content: ''; display: block; position: absolute; top: 50%; width: 12px; height: 18px; transform: translate(-20px,-50%); background: url(../images/sprite_01.png) no-repeat -64px -212px;}.header_c .header_right .app:hover{ color: #8edeaf;}.header_c .header_right .app:hover::before{ background-position: ; background-position: -96px -212px;}header.css


<!-- header 区域开始 --> <div class="header"> <div class="inner_c header_c"> <!-- header 左侧 --> <div class="header_left"> <!-- logo 区域 --> <h1 class="logo"> <a href="index.html">拉勾招聘|专业|互联网|招聘|求职|培训|JAVA|前端</a> </h1> <!-- 城市选择 --> <div class="city"> <span>全国站</span><i>[切换城市]</i> </div> <!-- 导航区域 --> <ul class="nav"> <li class="current"><a href="index.html">首页</a></li> <li><a href="company.html">公司</a></li> <li><a href="school.html">校园招聘</a></li> <li><a href="#">职位</a></li> <li><a href="#">言职</a></li> <li><a href="#">课程<span class="tips">new</span></a></li> </ul> </div> <!-- header 右侧 --> <div class="header_right"> <a href="" class="upload">上传简历</a> <a href="" class="subscribe">职位订阅</a> <a href="" class="login">登录</a> <span>|</span> <a href="" class="register">注册</a> <a href="" class="app">拉勾APP</a> <a href="" class="">进入企业版</a> </div> </div> </div> <!-- header 区域结束 -->header of index.html








四、模块直播内容

1、前端代码规范(京东)

# 代码规范## 1. 概述欢迎使用前端代码规范, 这里借鉴、引用的是京东前端代码规范。遵循代码规范的目的在于增强团队开发协作、提高代码质量和打造开发基石的编码规范。以下规范是团队基本约定的内容,必须严格遵循。实际工作中,也可以根据公司的需求制定自己的代码规范。#### HTML规范基于 [W3C](http://www.w3.org/)、[苹果开发者](https://developer.apple.com/) 等官方文档,并结合团队业务和开发过程中总结的规范约定,让页面HTML代码更具语义性。#### 图片规范了解各种图片格式特性,根据特性制定图片规范,包括但不限于图片的质量约定、图片引入方式、图片合并处理等,旨在从图片层面优化页面性能。#### CSS规范统一规范团队 CSS 代码书写风格和使用 CSS 预编译语言语法风格,提供常用媒体查询语句和浏览器私有属性引用,并从业务层面统一规范常用模块的引用。#### 命名规范从 `目录`、`图片`、`HTML/CSS文件`、`ClassName` 的命名等层面约定规范团队的命名习惯,增强团队代码的可读性。#### JavaScript 规范(暂时不讲)统一团队的 JS 语法风格和书写习惯,减少程序出错的概率,其中也包含了 ES6 的语法规范和最佳实践。## 2. HTML 规范### DOCTYPE 声明HTML文件必须加上 DOCTYPE 声明,并统一使用 HTML5 的文档声明:~~~html<!DOCTYPE html>~~~**HTML5标准模版**```html<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>HTML5标准模版</title> </head> <body> </body></html>```### 页面语言lang推荐使用属性值 `cmn-Hans-CN`(简体, 中国大陆),但是考虑浏览器和操作系统的兼容性,目前仍然使用 `zh-CN` 属性值```<html lang="zh-CN">```更多地区语言参考:```zh-SG 中文 (简体, 新加坡) 对应 cmn-Hans-SG 普通话 (简体, 新加坡)zh-HK 中文 (繁体, 香港) 对应 cmn-Hant-HK 普通话 (繁体, 香港)zh-MO 中文 (繁体, 澳门) 对应 cmn-Hant-MO 普通话 (繁体, 澳门)zh-TW 中文 (繁体, 台湾) 对应 cmn-Hant-TW 普通话 (繁体, 台湾)```### charset 字符集合一般情况下统一使用 “UTF-8” 编码```<meta charset="UTF-8">```由于历史原因,有些业务可能会使用 “GBK” 编码```<meta charset="GBK">```请尽量统一写成标准的 “UTF-8”,不要写成 “utf-8” 或 “utf8” 或 “UTF8”。根据 [IETF对UTF-8的定义](http://www.ietf.org/rfc/rfc3629),其编码标准的写法是 “UTF-8”;而 UTF8 或 utf8 的写法只是出现在某些编程系统中,如 .NET framework 的类 System.Text.Encoding 中的一个属性名就叫 UTF8。### 书写风格#### HTML代码大小写HTML标签名、类名、标签属性和大部分属性值统一用小写*推荐:*```<div class="demo"></div>```*不推荐:*```<div class="DEMO"></div> <DIV CLASS="DEMO"></DIV>```### 类型属性不需要为 CSS、JS 指定类型属性,HTML5 中默认已包含*推荐:*```<link rel="stylesheet" href="" ><script src=""></script>```*不推荐:*```<link rel="stylesheet" type="text/css" href="" ><script type="text/javascript" src="" ></script>```### 元素属性- 元素属性值使用双引号语法- 元素属性值可以写上的都写上*推荐:*```<input type="text"><input type="radio" name="name" checked="checked" >```*不推荐:*```<input type=text> <input type='text'><input type="radio" name="name" checked >```### 特殊字符引用文本可以和字符引用混合出现。这种方法可以用来转义在文本中不能合法出现的字符。在 HTML 中不能使用小于号 “<” 和大于号 “>”特殊字符,浏览器会将它们作为标签解析,若要正确显示,在 HTML 源代码中使用字符实体*推荐:*```<a href="#">more&gt;&gt;</a>```*不推荐:*```<a href="#">more>></a>```### 代码缩进统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)```<div class="jdc"> <a href="#"></a></div>```### 代码嵌套元素嵌套规范,每个块级元素独立一行,行内元素可选*推荐:*避免行内元素的空白折叠现象。```<div> <h1></h1> <p></p></div> <p><span></span><span></span></p>```*不推荐:*```<div> <h1></h1><p></p></div> <p> <span></span> <span></span></p>```段落元素与标题元素只能嵌套行内元素*推荐:*```<h1><span></span></h1><p><span></span><span></span></p>```*不推荐:*```<h1><div></div></h1><p><div></div><div></div></p>```## 3. 图片规范### 内容图内容图多以商品图等照片类图片形式存在,颜色较为丰富,文件体积较大- 优先考虑 JPEG 格式,条件允许的话优先考虑 WebP 格式- 尽量不使用PNG格式,PNG8 色位太低,PNG24 压缩率低,文件体积大- **PC平台单张的图片的大小不应大于 200KB。**### 背景图背景图多为图标等颜色比较简单、文件体积不大、起修饰作用的图片- PNG 与 GIF 格式,优先考虑使用 PNG 格式,PNG格式允许更多的颜色并提供更好的压缩率- 图像颜色比较简单的,如纯色块线条图标,优先考虑使用 PNG8 格式,避免使用 JPEG 格式- 图像颜色丰富而且图片文件不太大的(40KB 以下)或有半透明效果的优先考虑 PNG24 格式- 图像颜色丰富而且文件比较大的(40KB - 200KB)优先考虑 JPEG 格式- 条件允许的,优先考虑 WebP 代替 PNG 和 JPEG 格式## 4. CSS规范### 代码格式化样式书写一般有两种:一种是紧凑格式 (Compact)```.jdc{ display: block;width: 50px;}```一种是展开格式(Expanded)```.jdc { display: block; width: 50px;}```**团队约定**统一使用展开格式书写样式### 代码大小写样式选择器,属性名,属性值关键字全部使用小写字母书写,属性字符串允许使用大小写。```/* 推荐 */.jdc{ display:block;} /* 不推荐 */.JDC{ DISPLAY:BLOCK;}```### 选择器- 尽量少用通配符选择器 `*`- 不使用 ID 选择器- 不使用无具体语义定义的标签选择器```css/* 推荐 */.jdc {}.jdc li {}.jdc li p{}/* 不推荐 */*{}#jdc {}.jdc div{}```### 代码缩进统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)```.jdc { width: 100%; height: 100%;}```### 分号每个属性声明末尾都要加分号;```.jdc { width: 100%; height: 100%;}```### 代码易读性左括号与类名之间一个空格,冒号与属性值之间一个空格*推荐:*```.jdc { width: 100%; }```*不推荐:*```.jdc{ width:100%;}```逗号分隔的取值,逗号之后一个空格*推荐:*```.jdc { box-shadow: 1px 1px 1px #333, 2px 2px 2px #ccc;}```*不推荐:*```.jdc { box-shadow: 1px 1px 1px #333,2px 2px 2px #ccc;}```为单个css选择器或新申明开启新行*推荐:*```css.jdc, .jdc_logo, .jdc_hd { color: #ff0;}.nav{ color: #fff;}```*不推荐:*```css.jdc,jdc_logo,.jdc_hd { color: #ff0;}.nav{ color: #fff;}```颜色值 `rgb()` `rgba()` `hsl()` `hsla()` `rect()` 中不需有空格,且取值不要带有不必要的 0*推荐:*```.jdc { color: rgba(255,255,255,.5);}```*不推荐:*```.jdc { color: rgba( 255, 255, 255, 0.5 );}```属性值十六进制数值能用简写的尽量用简写*推荐:*```.jdc { color: #fff;}```*不推荐:*```css.jdc { color: #ffffff;}```不要为 `0` 指明单位*推荐:*```css.jdc { margin: 0 10px;}```*不推荐:*```css.jdc { margin: 0px 10px;}```### 属性值引号css属性值需要用到引号时,统一使用单引号```css/* 推荐 */.jdc { font-family: 'Hiragino Sans GB';}/* 不推荐 */.jdc { font-family: "Hiragino Sans GB";}```### 属性书写顺序建议遵循以下顺序:1. 布局定位属性:display / position / float / clear / visibility / overflow(建议 display 第一个写,毕竟关系到模式)2. 自身属性:width / height / margin / padding / border / background3. 文本属性:color / font / text-decoration / text-align / vertical-align / white- space / break-word4. 其他属性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient …```css.jdc { display: block; position: relative; float: left; width: 100px; height: 100px; margin: 0 10px; padding: 20px 0; background: rgba(0,0,0,.5); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; color: #333; -webkit-border-radius: 10px; -moz-border-radius: 10px; -o-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px;}```[mozilla官方属性顺序推荐](https://www.mozilla.org/css/base/content.css)## 命名规范由历史原因及个人习惯引起的 DOM 结构、命名不统一,导致不同成员在维护同一页面时,效率低下,迭代、维护成本极高。### 目录命名* 项目文件夹:lagou* 样式文件夹:css* 脚本文件夹:js* 样式类图片文件夹:img* 产品类图片文件夹: upload* 字体类文件夹: fonts### ClassName命名ClassName的命名应该尽量精短、明确,必须以**字母开头命名**,且**全部字母为小写**,单词之间**统一使用下划线** “_” 连接.nav_top#### 常用命名推荐**注意**:ad、banner、gg、guanggao 等有机会和广告挂勾的不建议直接用来做ClassName,因为有些浏览器插件(Chrome的广告拦截插件等)会直接过滤这些类名,因此```<div class="ad"></div>```这种广告的英文或拼音类名不应该出现另外,**敏感不和谐字眼**也不应该出现,如:```<div class="fuck"></div><div class="jer"></div><div class="sm"></div><div class="gcd"></div> <div class="ass"></div> <div class="KMT"></div> ...```| ClassName | 含义 || ---------------------- | -------------------- || about | 关于 || account | 账户 || arrow | 箭头图标 || article | 文章 || aside | 边栏 || audio | 音频 || avatar | 头像 || bg,background | 背景 || bar | 栏(工具类) || branding | 品牌化 || crumb,breadcrumbs | 面包屑 || btn,button | 按钮 || caption | 标题,说明 || category | 分类 || chart | 图表 || clearfix | 清除浮动 || close | 关闭 || col,column | 列 || comment | 评论 || community | 社区 || container | 容器 || content | 内容 || copyright | 版权 || current | 当前态,选中态 || default | 默认 || description | 描述 || details | 细节 || disabled | 不可用 || entry | 文章,博文 || error | 错误 || even | 偶数,常用于多行列表或表格中 || fail | 失败(提示) || feature | 专题 || fewer | 收起 || field | 用于表单的输入区域 || figure | 图 || filter | 筛选 || first | 第一个,常用于列表中 || footer | 页脚 || forum | 论坛 || gallery | 画廊 || group | 模块,清除浮动 || header | 页头 || help | 帮助 || hide | 隐藏 || hightlight | 高亮 || home | 主页 || icon | 图标 || info,information | 信息 || last | 最后一个,常用于列表中 || links | 链接 || login | 登录 || logout | 退出 || logo | 标志 || main | 主体 || menu | 菜单 || meta | 作者、更新时间等信息栏,一般位于标题之下 || module | 模块 || more | 更多(展开) || msg,message | 消息 || nav,navigation | 导航 || next | 下一页 || nub | 小块 || odd | 奇数,常用于多行列表或表格中 || off | 鼠标离开 || on | 鼠标移过 || output | 输出 || pagination | 分页 || pop,popup | 弹窗 || preview | 预览 || previous | 上一页 || primary | 主要 || progress | 进度条 || promotion | 促销 || rcommd,recommendations | 推荐 || reg,register | 注册 || save | 保存 || search | 搜索 || secondary | 次要 || section | 区块 || selected | 已选 || share | 分享 || show | 显示 || sidebar | 边栏,侧栏 || slide | 幻灯片,图片切换 || sort | 排序 || sub | 次级的,子级的 || submit | 提交 || subscribe | 订阅 || subtitle | 副标题 || success | 成功(提示) || summary | 摘要 || tab | 标签页 || table | 表格 || txt,text | 文本 || thumbnail | 缩略图 || time | 时间 || tips | 提示 || title | 标题 || video | 视频 || wrap | 容器,包,一般用于最外层 || wrapper | 容器,包,一般用于最外层 |

2、html条件注释(兼容IE的HTML写法)

如果需要有一部分HTML只在IE中渲染,就有这个注释,其他浏览器,会默认为注释不加载。

①IE浏览器兼容

(可以去IE低版本与高版本对比看看)

②条件注释简介

3、css hack

4、常见的网页布局

①两列自适应

<div class="content"> <div class="left"> <p>左侧盒子宽度自适应内容宽度</p> <img src="images/smile01.jpg" alt=""> </div> <div class="right"> <p>右侧盒子占有父级剩余的宽度部分</p> </div> </div>


* { margin: 0; padding: 0; } .content { width: 1000px; height: 500px; background-color: lightblue; } .left { float: left; background-color: pink; } .left img { width: 400px; } .right { height: 300px; /* 触发 BFC,不会与浮动的元素重叠 */ overflow: hidden; background-color: lightyellow; }


②圣杯布局

<div class="container"> <div class="center"> <h2>圣杯布局,中间自适应宽度</h2> </div> <div class="left">左侧固定宽度</div> <div class="right">右侧固定宽度</div> </div>


* { margin: 0; padding: 0; } .container { position: relative; box-sizing: border-box; max-width: 1500px; height: 500px; /* 用内边距为左右固定的两个子元素留取空位 */ padding-left: 200px; padding-right: 200px; margin: 0 auto; background-color: lightyellow; } /* 定位在左侧,padding 区域 */ .left { position: absolute; left: 0; top: 0; width: 190px; height: 300px; background: skyblue; } /* 定位在右侧,padding 区域 */ .center { width: 100%; height: 400px; background: yellowgreen; } .right { position: absolute; right: 0; top: 0; width: 190px; height: 400px; background: skyblue; }③等高布局

<div class="container"> <div class="center"> <h2>登高布局,中间自适应宽度,自身高度决定父级高度</h2> </div> <div class="left">左侧固定宽度,高度自动等于中间内容高度</div> <div class="right">右侧固定宽度,高度自动等于中间内容高度</div> </div>


* { margin: 0; padding: 0; } .container { position: relative; box-sizing: border-box; max-width: 1500px; /* 父级不设置高度,被中间标准流内容撑开 */ /* 用内边距为左右固定的两个子元素留取空位 */ padding-left: 200px; padding-right: 200px; margin: 0 auto; background-color: lightyellow; } /* 定位在左侧,padding 区域 */ .left { position: absolute; left: 0; top: 0; width: 190px; /* 高度设置为父级的 100%,与父级共同变化 */ height: 100%; background: skyblue; } /* 定位在右侧,padding 区域 */ .center { width: 100%; height: 400px; background: yellowgreen; } .right { position: absolute; right: 0; top: 0; width: 190px; height: 100%; background: skyblue; }④粘连布局

<div class="wrapper"> <div class="main"> <p>主体内容 1</p> <p>主体内容 2</p> <p>主体内容 3</p> </div> </div> <div class="footer">底部</div>


* { margin: 0; padding: 0; } html, body { height: 100%; } .wrapper { min-height: 100%; padding-bottom: 100px; box-sizing: border-box; background: lightyellow; text-align: center; overflow: hidden; } .wrapper .main { background-color: skyblue; } .wrapper .main p { height: 100px; } .footer { height: 100px; margin-top: -100px; line-height: 50px; background: pink; text-align: center; }

5、常见浏览器尺寸

6、BEM和OOCSS

解决css定义类名可能冲突的问题


关键词:

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭