整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

前端HTML入门课程01 网页&浏览器&web标准

、认识网页

我们日常见到的网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。

代码是如何形成网页的呢? 那就需要浏览器引擎进行解析渲染了。

二、常见浏览器介绍

浏览器是网页运行的平台,常用的浏览器有:

  • IE
  • 火狐(Firefox)
  • 谷歌(Chrome)
  • Edge
  • Safari
  • Opera

2.1 浏览器占有的市场份额

根据市场调查机构 Statcounter 最新公布的数据,2023 年 11 月全球桌面浏览器市场份额排名前三名分别是谷歌 Chrome(62.06%)、苹果 Safari(13.3%)和 Edge 浏览器(5.5%)。虽然 Edge 浏览器在全球范围内均有分布,但其份额仍无法超过 Safari 浏览器。与上月相比,Chrome 的份额下降了 0.25 个百分点,Safari 的份额增加了 0.07 个百分点。Firefox 在该月的全球份额达到 3.24%,相比上月增长了 0.22 个百分点。

在桌面端浏览器市场中,Chrome 继续稳居第一,市场份额为 62.06%,尽管有所下降但也属于正常波动范围。Safari 以 13.3% 的份额紧随其后,在全球范围内享有较高的知名度。Edge 的市场份额从上月的 11.8% 下降到 11.23%,仍然保持着良好的增长趋势。

此外,Firefox 的全球份额也有所上升,达到 6.69%,与其他浏览器相比表现强劲。Opera、360 安全浏览器、IE 等其他浏览器也在全球范围内占有一定的市场份额。

总体而言,在桌面浏览器市场上,Chrome 继续保持着领先地位,而 Safari 和 Edge 则在市场上展开了激烈的竞争。预计在未来几个月内,这些产品将继续保持稳定的增长态势,并且会继续影响着用户的使用习惯和技术趋势。

2.2 浏览器内核(理解)

浏览器内核又可以分成两部分:【渲染引擎】(layout engineer 或者 Rendering Engine) 和 【JS 引擎】。

  • 渲染引擎:它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
  • JS 引擎:解析 Javascript 语言,执行 javascript语言来实现网页的动态效果。

2.3 常见的渲染引擎

内核通常只指渲染引擎:

最开始渲染引擎和 JS 引擎并没有区分的很明确,后来【JS 引擎越来越独立,内核就倾向于只指渲染引擎】。有一个网页标准计划小组制作了一个 ACID 来测试引擎的兼容性和性能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。

(1)Trident(IE内核)

Trident [ˈtraɪdn:t]:n. 三叉戟

国内很多的双核浏览器的其中一核便是 Trident,美其名曰 "兼容模式"。

代表: IE、傲游、世界之窗浏览器、Avant、腾讯TT、猎豹安全浏览器、360极速浏览器、百度浏览器等(这些国产浏览器都是双内核)。

Window10 发布后,IE 将其内置浏览器命名为 Edge,Edge 最显著的特点就是新内核 EdgeHTML。

(2)Gecko(firefox)

Gecko [ˈgekoʊ] n. 壁虎

Gecko(Firefox 内核): Mozilla FireFox(火狐浏览器) 采用该(渲染引擎),Gecko 的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。 可惜这几年已经没落了, 比如 打开速度慢、升级频繁、猪一样的队友flash、神一样的对手chrome。

(3)webkit(Safari)

Safari 是苹果公司开发的浏览器,所用浏览器内核(渲染引擎)的名称是大名鼎鼎的开源引擎 WebKit。

现在很多人错误地把 webkit 叫做 chrome内核(即使 chrome内核已经是 blink 了)。

代表浏览器:傲游浏览器3、 Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 4.4之前的默认浏览器

(4)Chromium/Bink(chrome)

Blink [biŋk] n. 架子;长凳

在 Chromium 项目中研发 Blink 渲染引擎,内置于 Chrome 浏览器之中。Blink 其实是 WebKit 的分支, 也是开源的。 (大名鼎鼎的 V8 是 Chrome 的 JS 引擎

大部分国产浏览器最新版都采用Blink内核。

(5)Presto(Opera)

Presto ['prɛsto] adj. 迅速的

Presto 是挪威产浏览器 opera 的 "前任" 内核(渲染引擎),为何说是 "前任",因为最新的 opera 浏览器早已将之抛弃从而投入到了谷歌怀抱了。


了解一点:

移动端的浏览器内核主要说的是系统内置浏览器的内核。

目前移动设备浏览器上常用的内核有 Webkit,Blink,Trident,Gecko 等,其中 iPhone 和 iPad 等苹果 iOS 平台主要是 WebKit,Android 4.4 之前的 Android 系统浏览器内核是 WebKit,Android4.4 系统浏览器切换到了Chromium,内核是 Webkit 的分支 Blink,Windows Phone 8 系统浏览器内核是 Trident。

三、Web标准(重点)

通过了解以上浏览器的内核不同,我们知道他们工作原理、解析肯定不同,显示就会有差别。


由于不同的浏览器解析出来的效果可能不一致,开发中通常需要为同个界面做多版本的开发。

3.1 Web 标准的好处

1、让Web的发展前景更广阔

2、内容能被更广泛的设备访问

3、更容易被搜寻引擎搜索

4、降低网站流量费用

5、使网站更易于维护

6、提高页面浏览速度

3.2 Web 标准构成

Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合。主要包括结构(Structure)、表现(Presentation)和行为(Behavior)三个方面。

  • 结构标准:用于对网页元素进行整理和分类,主要包括XML和XHTML两个部分(我们主要学习XHTML)。
  • 样式标准:用于设置网页元素的版式、颜色、大小等外观样式,主要指的是CSS。
  • 行为标准:是指网页模型的定义及交互的编写,主要包括 W3C标准(BOM、DOM) 和 ECMAScript 两个部分

理想状态下,我们的源码由3部分组成: .HTML 文件(定义结构) .css 文件(定义样式) .js 文件(定义行为)

这样代码的结构清晰,好维护

打个比方:

TML配置

  • 文件应以“”首行顶格开始,推荐使用“”。
  • 必须申明文档的编码charset,并且使用UTF-8编码。
  • 移动端必须使用 viewport 适配
  • 页面title是极为重要的不可缺少的一项。

以下是一个标准的html结构

html复制代码<!DOCTYPE html>
<html>
  <head>
    <!-- 必须声明 utf-8 编码格式 -->
    <meta charset="utf-8">
    <!-- 页面标题不能为空 -->
    <title>京东商城:商家后台</title>
    <!-- 移动端必须使用 viewport 适配需要, PC 看场景需要使用 -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
     
    <!-- 样式文件 以外链形式在此处引入 -->
    <link href="//static.360buyimg.com/bus/test/shop1_3/UI2.0update.css" rel="stylesheet">
  </head>
  <body>
    <!-- 页面主体 -->
    <div class="warp">
      <header>顶部内容区域,比如:菜单头</header>
      <div class="content">主内容区域</div>
      <footer>顶部页尾区域,比如:备案号</footer>
    </div>
     
    <!-- js文件 在此处引入 -->
    <script type="text/javascript" src="//wl.jd.com/joya.js"></script>
  </body>
</html>

主框架(jQuery,vue,react,angular等) 避免混合使用

避免多个框架混合使用,在同一个工程里面要保持主框架的一致性,多框架同时使用会造成代码混乱,后期会变得越来越难维护。

Css开发规范

1、全局样式禁止使用!important

2、避免使用导入式引入css样式文件;

css复制代码<style type="text/css">
  @import url(./demo.css);
</style>

未使用的js/css禁止引用

历史页面会有一些功能下线,在去除页面初始化的js语句的同时,也要将依赖的js文件删除,避免资源加载浪费

文件必须使用gzip压缩

开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度

api接口中,无用字段占传输比例30%以上时,删除无用字段

在开发过程中,发现无用字段占传输比例30%以上时,请进行返回数据的删减,加快数据请求速度

关于图片压缩

上传图片之前一定要做图片的无损压缩,节省网络流量,推荐网站tinypng

HTML的标准结构

html复制代码<!DOCTYPE html>
<html>
  <head>
    <!-- 必须声明 utf-8 编码格式 -->
    <meta charset="utf-8">
    <!-- keywords 关键词 和 Description 页面描述 便于搜索引擎检索,不强制使用 -->
    <meta name="Keywords" Content=”关键词1,关键词2,关键词3,关键词4″>
    <meta name="Description" Content=”页面描述″>
    <!-- 移动端必须使用 viewport 适配需要, PC 看场景需要使用 -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
    <!-- 推荐手动引入指定路径 favicon  -->
    <link rel="shortcut icon" href="path/to/favicon.ico">
    <!-- 样式文件必须以外链形式在此处引入 -->
    <link href="//static.360buyimg.com/bus/test/shop1_3/UI2.0update.css" rel="stylesheet">
    <!-- 内联样式 -->
    <style type="text/css">
      .warp {
        margin: 0;
        padding: 0;
      }
    </style> -->
    <!-- 页面标题不能为空 -->
    <title>页面标题</title>
  </head>
  <body>
  <!-- 页面主体 -->
    <div class="warp">
    <header>顶部内容区域,比如:菜单头</header>
    <div class="content">主内容区域</div>
    <footer>顶部页尾区域,比如:备案号</footer>
    </div>
 
    <!-- JavaScript 文件在此处引入 -->
    <script type="text/javascript" src="//wl.jd.com/joya.js"></script>
  </body>
</html>
  • 不同模块区域可使用简要备注标识模块内容
  • HTML 标签语义化使结构清晰,比如:
  • CSS 外链引入必须放在 中
  • JS 外链引入必须放在中
  • 省略图像、媒体文件、样式表和脚本等嵌入式资源 URL 协议头部声明 ( http:// , https:// ),用//代替。
  • favicon 在未指定 favicon 时,大多数浏览器会请求 Web Server 根目录下的 favicon.ico 。为了保证 favicon 可访问,避免404,必须遵循以下两种方法之一:1。在 Web Server 根目录放置 favicon.ico 文件,2。使用 link 指定 favicon

HTML标签使用守则

标签小写

原生 HTML 标签元素小写使用,自定义组件使用小驼峰命名(自定义标签避免和原生标签同名)

html复制代码<!-- 错误 ❌ -->
<DIV></DIV>
<SPAN></SPAN>  
 
<!-- 正确 ✅ -->
<div></div>  
<p></p> 
 
<!-- 自定义组件 -->
<shareDialog><shareDialog/>

套用规则

禁止在行内元素中嵌套块级元素❗️

html复制代码<!-- 错误的嵌套 ❌ -->
<span><div></div></span>  
<i><p></p></i>     
 
<!-- 正确的嵌套 ✅ -->
<div><span></span></div>  
<p><i></i></p>   

更多标签使用规则介绍请查看尾部附录

属性定义

定义属性赋值时,使用双引号,禁止单双引号混用

html复制代码<!-- 错误的定义 ❌ -->
<input id="formTitle" type='text' placeholder="请输入标题">   
 
<!-- 正确的定义 ✅ -->
<input id="formTitle" type="text" placeholder="请输入标题" data="formTitle">   

正确闭合

除自闭合标签外,所有标签都需正确的编写闭合标签

常用自闭合标签: <br />、<col />、<img />、<input />、<link />、<meta />、<keygen />

ID、Class 命名使用规范

ID 和 Class 取通用且有意义的名字;

使用连字符 - 作为 ID、Class 名称界定符 ,不要驼峰命名法和下划线;

避免选择器嵌套层级过多,尽量少于 3 级;

使用命名空间防止命名冲突,利于维护;

css复制代码/* 不推荐: 无意义 不易理解 */
#yee-1901 {}
#meunBtn {}
.login_input {}
 
/* 推荐: 明确详细 */
#gallery {}
#login {}
.login-input {}
.meun-btn {}
  • 避免选择器和 Class、ID 叠加使用
  • 声明顺序,相关属性应为一组,建议遵循: 定位布局属性 -> 盒模型属性 -> 文本属性 -> 视觉属性 -> 其他属性
  • 对于 JS 操作相关选择器 前面需加上 特殊应用标识前缀
css复制代码/* 标准的声明顺序 */
.declaration-order {
  /* 布局属性 */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100;
 
  /* 盒模型属性 */
  display: block;
  box-sizing: border-box;
  width: 100px;
  height: 100px;
  padding: 10px;
  border: 1px solid #e5e5e5;
  border-radius: 3px;
  margin: 10px;
  float: right;
  overflow: hidden;
 
  /* 文本属性 */
  font: normal 13px "Helvetica Neue", sans-serif;
  line-height: 1.5;
  text-align: center;
 
  /* 视觉属性 */
  background-color: #f5f5f5;
  color: #fff;
  opacity: .8;
 
  /* 其他属性 */
  cursor: pointer;
}

图片相关使用规范

<img/>标签守则

  • src 属性不能为空,需添加默认值(托底图片路径)
  • 为重要图片添加 alt 属性,当无法显示图像时,浏览器将显示替代文本,便于 SEO 及用户阅读
  • 为图片标签 增加 width 和 height 属性,避免图片加载从无到有,导致页面抖动
  • 大量图片流资源,使用懒加载技术按需加载
html复制代码<!-- 禁止 src 取值为空 -->
<img src="" />
 
<!-- 推荐 -->
<img src="xxxx" alt="xxx" style="width:100px;height:100px;" />

图片资源守则

大小

尺寸 小于 50 × 50 的请使用 字体图标(iconfont)或者 将多个图标合成一张大图使用(雪碧图) 尺寸大于 50 × 50 的图片,引入前先使用 在线压缩 对其进行压缩 ,图片大小尽量控制在 300kb 以内

倍率

PC端、移动端 推荐使用 2倍图 (@2x),避免设备分辨率过高,图片显示失真模糊 如有兼容 iPad 场景等特殊场景,可使用 3倍图(@3x)

html复制代码<img src="//logo@200x200.jpg" alt="xx" style="width:100px;height:100px;"/>

2倍图: 图片展示区域大小 : 图片实际尺寸 = 1 :2

无论使用几倍图,图片大小都需遵守上条限制

如遇图片倍图问题,可咨询 @UI童鞋

性能守则

  • 避免不必要的 DOM 操作浏览器遍历 DOM 元素的代价是昂贵的。最简单优化 DOM 树查询的方案是,当一个元素出现多次时,将它保存在一个变量中,来避免多次查询 DOM 树。
js复制代码/* 推荐用变量保存频繁使用的 DOM 元素*/
var ul = document.getElementsByTagName('ul')[0],
  lis = document.getElementsByTagName('ul')[0].getElementsByTagName('p')
   
/* 推荐用变量保存频繁使用的 DOM 元素*/
var ul = document.getElementsByTagName('ul')[0],
  lis = ul.getElementsByTagName('li')
  • 异步加载第三方内容 当你无法保证嵌入第三方内容 比如 埋点、调研等资源正常工作的时候,你需要考虑用异步加载这些代码,避免阻塞整个页面加载。
  • 减少标签的数量 编写 HTML 代码时,尽量避免多余的标签嵌套,避免 DOM树的冗余
  • 控制静态资源数量

1个页面中建议CSS文件不要超过3个(1个组件库样式文件、1个项目公共样式、1个页面样式); JS文件不要超过5个(1个框架文件、1个组件库文件、1个项目公共库文件、1个页面脚本文件、1个埋点文件)。

编码建议

缩进使用 2个空格 样式建议引入 CSS reset 重置各浏览器自带样式差异 github.com/necolas/nor… JS 中字符串定义 使用 '' 单引号

其他建议

保持一定的代码洁癖,尤其在大型项目中

  • 代码逻辑应当直截了当,清晰易读,保持与业务逻辑与代码一一对应关系,减少逻辑错误的可能性,降低二次开发成本;
  • 删除过期无用代码,减少代码过大,造成不必要的维护成本
  • 代码尽量复用,拥有组件化思想
  • 代码命名合理化,即使不写注释情况下,也可以让其他开发人员一眼明白意思
  • 性能调至最优,降低耦合度,避免别人做不合理的优化时而造成的混乱
  • 整洁的模块边界,明确的划分模块之间的逻辑边界,尽量保证职责单一,避免功能交叉混杂
  • 让代码没有改进的余地,在开发时把各种情况都想到了,如果有人企图改进它,总是会回到原点

性能检测工具 - Lighthouse简介 Lighthouse是一个Google开源的自动化工具,主要用于改进网络应用的质量。Lighthouse会对各个测试项的结果打分,并给出优化建议,这些打分标准和优化建议可以视为Google的网页最佳实践。

Chrome拓展程序 谷歌商店安装lighthouse后,在右上角或者菜单里点击图中图标,Options可以配置测试项目,点击Generate report即可测试。

命令行

js复制代码<!-- 安装 lighthouse 组件(Node.js V5.0 或以上版本) -->
npm install -g lighthouse
<!-- 启动测试 (测试过程中会自动打开 Chrome 完成后会在当前目录生成一个静态HTML文件) -->
lighthouse https://www.baidu.com/ --view
<!-- 帮助-->
lighthouse --help

检测结果

【附录】常用的标签规范

标签

语义

嵌套常见错误

常用属性

<a></a>

超链接/锚

a不可嵌套a

href,name,title,rel,target

<div></div>

块级容器



<p></p>

段落

不能嵌套块级元素


<span></span>

内联容器(行内元素)

不可嵌套块级容器


<form></form>

表单


action,target,method,name

<input />

输入框

不可嵌套元素

type,name,value,checked,disabled,maxlength,readonly,accesskey

<textarea></textarea>

多行文本输入控件


name,accesskey,disabled,readonly,rows,cols

<img />

图像

不可嵌套元素

alt,src,width,height

<label></label>

标签(常用input元素定义标注)

不可嵌套块级容器

for

<table></table>

表格

只可嵌套表格子元素

width,align,background,cellpadding,cellspacing,summary,border

<tbody></tbody>

表格主体

只能嵌套在table内


<thead></thead>

表头

只能嵌套在table内


<tr></tr>

表格行

嵌套于table或thead、tbody、tfoot


<td></td>

表格中的单元格

只用于tr

colspan,rowspan

<th></th>

表格中的标题单元格

只用于tr

colspan,rowspan

<tfoot></tfoot>

表格表尾

只用于table


<button></button>

按钮

不可嵌套表单、表格等块级元素

type,disabled

<select></select>

列表框或下拉框

只能嵌套option或optgroup

name,disabled,multiple

<option></option>

select中的一个选项

只能嵌套在select内

value,selected,disabled

<ol></ol>

有序列表

只能嵌套li


<ul></ul>

无序列表

只能嵌套li


<li></li>

无序列表项

只能嵌套在 ul 或 ol 内


<iframe></iframe>

内嵌一个网页


frameborder,width,height,src,scrolling,name

<br />

换行



<link />

引用样式或icon

不可嵌套任何元素

type,rel,href

<meta />

文档信息

只用于head内

content,http-equiv,name

<script></script>

引用脚本

不可嵌套任何元素

type,src

<style></style>

引用样式

不可嵌套任何元素

type,media

<title></title>

文档标题

只用于head内


点赞收藏支持、手留余香、与有荣焉,动动你发财的小手哟,感谢各位大佬能留下您的足迹。


作者:StriveToY
链接:https://juejin.cn/post/7262378982255394873

、Html概述

Html是Hyper Text Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或者htm,一个html文件就是一个网页,html文件用编辑器打开显示的是文本,可以用文本的方式编辑它,如果用浏览器打开,浏览器会按照标签描述内容文件渲染成网页,显示的网页可以从一个网页链接跳转到另一个网页。

二、Html标签语法

Html中标签分为 :成对标签和自闭合标签【空标签】

1、成对标签

成对出现,有开始标签必须有结束标签,内容包裹在两个标签中,而且开始标签名和结束标签名一致,并且结束标签必须以斜杠/开头

语法:

<font>内容</font>

2、自闭合标签

只有一个标签,用斜杠结束,斜杠也可以省略

语法:

<br/>

注意事项:

  • 成对标签中,结束标签必须以斜杠开头
  • 成对标签与成对标签可以嵌套不能交叉
  • 标签名不区分大小写,但是我们都必须小写

三、Html基本架构

<!DOCTYPE html>
<html lang="en">
<head>
    <title></title>
</head>
<body>
    
</body>
</html>

1、!DOCTYPE

!DOCTYPE html是文档声明,定义文档类型为html,并且告诉不同的浏览器用标准方式进行解析html语言,如果不写的话,会产生怪异模式,所谓怪异模式,就是浏览器会用自己的方式进行解析,不同的浏览器有各自的解析方式,从而会出现无效果、不兼容等问题。

注意,html中有两种声明类型,一种叫做xhtml,即html,另一种叫做html5,html5是xhtml的升级版,所以我们建议使用html5的声明方式

xhtml声明方式:

<htmlxmlns="http://www.w3.org/1999/xhtml">

html5声明方式:

<!DOCTYPE html>

2、html

html是html文档的整体,也就是表示一个网页。

html中的lang="en"是定义该文件语言是英文

3、head

head是html的第一层子元素【子标签】,负责对网页进行一些设置以及定义标题,设置包括定义网页的编码格式,外链css样式文件和JavaScript文件等。设置的内容不会显示在网页上,标题的内容会显示在标题栏中。即title标签。

4、meta

meta是html语言head标签中的一个辅助性标签,该标签不包含任何内容,但是该标签的属性定义了与文档相关联的名称,比如:编码

<meta charset="utf-8"></meta>

5、body

body也是html的第一层子元素,我们页面中显示的所有内容全部都是编写在该标签体中。

四、Html文档规范

html制定了文档的编写规范,必须遵守。

所有的标签必须小写

所有的属性必须用双引号括起来

五、Html注释

html文档代码中可以插入注释,注释是对代码的说明和解释,注释的内容不会显示在页面上。

注释的语法:

<!-- 注释的内容 -->

六、html基本属性

注:属性是标签的辅助作用。

属性 描述 bgcolor 设置网页的背景颜色 background 设置网页的背景图片

1.bgcolor

设置网页的背景颜色

<!DOCTYPE html>
<html lang="en">
<head>
    <title>html的属性</title>
</head>
<body bacolor="pink">
    
</body>
</html>

2.路径

我们在开发网页时,需要经常的插入图片、视频、文件等一些操作,但是我们需要指定文件所在的位置,这个位置就是所谓的路径

路径分为:

  1. 相对路径 指目标相对于当前文件的路径,网页结构设计中多采用这种方式来表示目标的路径。相对路径有多种表示方法,其表示的意义不尽相同。表示方法如下: ./ :代表文件所在的目录(可以省略不写)../ :代表文件所在的父级目录../../ :代表文件所在的父级目录的父级目录/ :代表文件所在的根目录【/ : 可以理解为目标文件的绝对路径】
  2. 绝对路径 指目标文件的完整路径,从盘符开始。

3.background

设置网页的背景图片

<!DOCTYPE html>
<html lang="en">
<head>
    <title>html的属性</title>
</head>
<body background="../images/10.jpg">
    
</body>
</html>

注意事项:

bgcolor和background不能同时使用

background不能指定绝对路径

七、Html标签

1.网页的组成

网页的组成:文字、图片、视频、超链接、列表、表格、表单等组成。

2、文本段落标签

标签 描述 hn 设置文字标题【n:取值范围 1~6】 center 居中对齐 hr 水平线 属性(width:宽度 color:颜色 size:粗细) br 换行 p 段落

3、文本控制标签

标签 描述 font 设置字体,需要借助属性设置

属性 描述 color 设置字体颜色 size 设置字体大小,不需要带单位,取值范围:1~7【浏览器默认值:3】 face 设置字体风格

<font size="2" color="red" face="黑体"></font>

4、文本格式化标签

标签 描述 b 定义粗体文本 em 定义着重文字 i 定义斜体文字 small 定义小号字 strong 定义加重语气 sub 定义下标字 sup 定义上标字 ins 定义插入字 del 定义删除字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html文本格式化标签</title>
</head>
<body>

    <b>粗体文本</b>
    <i>倾斜文本</i>
    <em>着重文本</em>
    <small>小号字</small>
    <strong>加重语气</strong>
    <sub>上标</sub>
    <sup>下标</sup>
    <ins>插入字</ins>
    <del>删除字</del>
    
</body>
</html>

5、图片标签

在Html中,图像由

标签定义。

是空标签,意思是说,它只包含属性。

要在页面上显示图像,你需要使用源属性(src)。src指"source"。源属性的值是图像的URL地址。

标签 描述 img 图片标签

属性 描述 src 指定图片的地址 width 设置图片的宽度 height 设置图片的高度 alt 设置图片的预备文本

注意事项:不建议设置图片大小,容易失真

6、audio

在Html中,声音由标签定义。

标签 描述 audio 声音标签

属性 描述 src 指定声音地址

<audio src="nice.mp3">对不起,您的浏览器不支持</audio>

7、video

在Html中,视频由video标签定义

标签 描述 video 视频标签

属性 描述 src 指定视频地址

<video src="美女.mp4">对不起,您的浏览器不支持</video>

8、超链接

a标签定义超链接,用于从一个页面链接到另一个页面。

a标签最重要的属性是href,它指定链接的目标。

在所有浏览器中,链接的默认外观如下:

未被访问的链接带有下划线而且是蓝色的

已被访问的链接带有下划线而且是紫色的

活动链接带有下划线而且是红色的

语法:

<a href="链接目标">点击内容</a>

属性 描述 href 指定链接目标 name 指定锚的名称 download 指定下载链接 target 指定跳转方式 属性值 描述 _blank 新窗口打开【常用】 _parent 在父窗口中打开链接【了解】 _self 默认,在当前窗口打开【了解】 _top 在当前窗体打开链接,并替换当前的整个窗体【了解】 framename 到 iframe 在讲【常用】

超链接分类:

  • 内部链接 链接目标:本地页面 <a href="demo.html">点击内容</a>
  • 外部链接 链接目标:外部页面 <a href="http://www.baidu.com">点击内容</a>
  • 多媒体链接 链接目标:图片、视频等 <a href="images/美女.jpg">点击内容</a>
  • 电子邮件链接 链接目标:电子邮件【系统自带的电子邮件】 <a href="mailto:12345@qq.com">点击内容</a>
  • 锚链接 链接目标:锚点 1.建立锚点
    <
    a name="锚点名"></a>

    2.跳转
    <a href="#锚点名">点击内容</a>

9、列表

列表的使用与word等软件的列表概念相似,只不过是应用在网页展示中。

1.有序列表

有序列表是指有数字编号或字母的列表项,可以使用css定义更多样式。

<!-- 有序列表 -->
    <ol type="a">
        <li>新闻一</li>
        <li>新闻二</li>
        <li>新闻三</li>
    </ol>

属性 描述 type 设置符号类型 值:1 a A I i 默认数字 start 从第几个开始【用于ol标签中】 value 从第几个开始【用于li标签中】

<!-- 有序列表 -->
    <ol type="a" start="4">
        <li>新闻一</li>
        <li type="1" value="1">新闻二</li>
        <li>新闻三</li>
    </ol>

2、无序列表

无序列表是指没有数字编号或字母的列表项,可以使用css定义更多样式。

<!-- 无序列表 -->
<ul>
    <li>童装</li>
    <li>男装</li>
    <li>女装</li>
</ul>

属性 描述 type 用于设置符号类型,默认:实心圆 值:空心圆、正方形 【用于ul、li】

<!-- 无序列表 -->
<ul type="square">
        <li>童装</li>
        <li type="circle">男装</li>
        <li>女装</li>
    </ul>

3、描述列表

描述列表指每个列表项有单独的标题。

<!-- 描述列表 -->
    <dl>
        <dt>开源产品</dt>
        <dd>Java封装库</dd>
        <dd>Web组件库</dd>
        
        <dt>网站导航</dt>
        <dd>mrliujava.com</dd>
        <dd>mrliuweb.com</dd>
    </dl>

10、表格

表格在网页开发中使用频率非常高,尤其是数据展示的时候。

10.1 基本使用

标签 描述 table 代表表格标签 caption 表格标题 thead 表头部分 tbody 表格主体部分 tfoot 表格尾部

属性 描述 border 表格边框 cellspacing 单元格与单元格间距 width 宽度 height 高度 bgcolor 设置背景颜色 background 设置背景图片 align 对齐方式

<!-- 表格 -->
    <table border="1" cellspacing="0" width="600px" height="200px">
        <caption>员工薪资统计表</caption>
        <thead>
            <tr>
                <th>序号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>职位</th>
                <th>薪资</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>1</td>
                <td>狗蛋</td>
                <td>男</td>
                <td>JavaEe工程师</td>
                <td>8780</td>
            </tr>

            <tr>
                <td>2</td>
                <td>黑妞</td>
                <td>女</td>
                <td>Web前端工程师</td>
                <td>9750</td>
            </tr>

            <tr>
                <td>3</td>
                <td>傻蛋</td>
                <td>妖</td>
                <td>测试工程师</td>
                <td>996</td>
            </tr>
        </tbody>

        <tfoot>
            <tr>
                <td>当前页:1 页</td>
                <td>上一页</td>
                <td>下一页</td>
                <td>尾页</td>
                <td>共 3 页</td>
            </tr>
        </tfoot>
    </table>

10.2 单元格合并

属性 说明 rowspan 行合并 colspan 列合并

下面是行合并:

<!-- 表格 -->
    <table border="1" cellspacing="0" width="600px" height="200px">
        <caption>员工薪资统计表</caption>
        <thead>
            <tr>
                <th>序号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>职位</th>
                <th>薪资</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>1</td>
                <td>狗蛋</td>
                <td>男</td>
                <td rowspan="2">JavaEe工程师</td>
                <td>8780</td>
            </tr>

            <tr>
                <td>2</td>
                <td>黑妞</td>
                <td>女</td>
                <td>9750</td>
            </tr>

            <tr>
                <td>3</td>
                <td>傻蛋</td>
                <td>妖</td>
                <td>测试工程师</td>
                <td>996</td>
            </tr>
        </tbody>

        <tfoot>
            <tr>
                <td>当前页:1 页</td>
                <td>上一页</td>
                <td>下一页</td>
                <td>尾页</td>
                <td>共 3 页</td>
            </tr>
        </tfoot>
    </table>

下面是列合并:

<!-- 表格 -->
    <table border="1" cellspacing="0" width="600px" height="200px">
        <caption>员工薪资统计表</caption>
        <thead>
            <tr>
                <th>序号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>职位</th>
                <th>薪资</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>1</td>
                <td>狗蛋</td>
                <td>男</td>
                <td>JavaEe工程师</td>
                <td>8780</td>
            </tr>

            <tr>
                <td>2</td>
                <td>黑妞</td>
                <td>女</td>
                <td>Web前端工程师</td>
                <td>9750</td>
            </tr>

            <tr>
                <td>3</td>
                <td colspan="2">傻蛋</td>
                <td>测试工程师</td>
                <td>996</td>
            </tr>
        </tbody>

        <tfoot>
            <tr>
                <td>当前页:1 页</td>
                <td>上一页</td>
                <td>下一页</td>
                <td>尾页</td>
                <td>共 3 页</td>
            </tr>
        </tfoot>
    </table>

11、表单

表单是一个包含表单元素的区域。

表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表(select)、单选框(radio)、复选框(checkbox)等等。

11.1 基本使用

表单需要使用表单标签来设置:

<!-- 表单 -->
<form>
input元素
</form>

11.2 GET&POST

属性 说明 action 后台地址 method 提交方式GET或POST

GET和POST区别:

1.GET

  • 数据会显示在地址栏中,数据不安全
  • 数据大小有限制
  • 数据通过请求头传递

2.POST

  • 数据不会显示在地址栏中,数据安全
  • 数据对大小无限制
  • 数据通过实体内容传递
<form action="后端接口" method="POST">
        <input type="text">
        <input type="password">
</form>

11.3 LABEL

使用label用于描述表单标题,当点击标题后文本框会获得焦点,需要保证使用的ID在页面中是唯一的。

<form action="后端接口" method="POST">
        <label for="username">用户名</label>
        <input type="text" id="username">

        <label for="password">密码</label>
        <input type="password" id="password">
</form>

也可以将文本框放在label标签内部,这样就不需要设置id与for属性了。

11.4 INPUT

文本框用于输入单行文本使用,下面是常用属性与示例。

属性 说明 type 表单类型,默认为text name 后端接收字段名 required 必须输入 placeholder 提示文本内容 value 默认指 maxlength 允许最大输入字符数 size 表单长度,一般用css来控制 disabled 禁用,不可提交后端 readonly 只读,可提交后端 accept 设置选中类型 比如:.jpg capture 使用麦克风\视频或摄像头哪种方式获取手机上传文件,支持的值有microphone , video , camera

11.4.1 基本示例

<form action="后端接口" method="POST">
        <label for="username">用户名</label>
        <input type="text" name="username" id="username" placeholder="请输入用户名" maxlength="5" size="50" required>
</form>

11.4.2 调用摄像头

当input类型为file时手机会让用户选择图片或者拍照,如果想直接调取摄像头使用以下代码.

<form action="后端接口" method="POST">
        <label for="file">上传文件</label>
        <input type="file" name="file" id="file" accept="*.jpg" capture="camera">
</form>

11.4.3 其他类型

通过设置表单的type字段可以指定不同的输入内容.

类型 说明 email 输入内容为邮箱 url 输入内容为URL地址 password 输入内容为密码项 tel 电话号,移动端会调出数字键盘 search 搜索框 hidden 隐藏表单 submit 提交表单 reset 重置表单 button 自定义按钮

11.4.4 HIDDEN

隐藏表单用于提交后台数据,但在前台内容不显示所以在其上做用样式定义也没有意义.

<input type="hidden" name="id" value="1">

11.4.5 SUBMIT

创建提交按钮可以将表单数据提交到后台,有多种方式可以提交数据,比如:AJAX,或者Html的表单按钮.

a.使用input构建提交按钮,如果设置了name值,那么按钮数据也会提交到后台,如果有多个表单项可以通过这些进行判断是哪个表单提交的.

<input type="submit" name="submit" value="提交表单">

b.使用button也可以提交,设置type属性为submit或不设置都可以提交表单.

<button type="submit">提交表单</button>

11.4.6 禁用表单

通过为表单设置disabled或readonly都可以禁止表单,单readonly表单的数据可以提交到后端

<input type="text" value="数据" readonly>

11.4.7 PATTERN

表单可以通过设置pattern属性指定正则验证.

属性 说明 pattern 正则表达式验证规则 oninvalid 输入错误时触发的事件

<form action="">
        <label for="username">用户名</label>
        <input type="text" name="username" id="username" pattern="[a-z]{5,20}" oninvalid="validate('请输入5~20位字母的用户名')">
        <button>提交表单</button>
    </form>

    <script>
        function validate(message){
            alert(message);
        }
    </script>

11.4.8 TEXTAREA

文本域指可以输入多行文本的表单,当然更复杂的情况可以使用编辑器如ueditor , ckeditor等.

属性 说明 cols 列字符数(一般使用css控制更好) rows 行数(一般使用css控制更好)

<textarea cols="30" rows="3">请踩踩我......</textarea>

11.4.9 SELECT

下拉列表项可用于多个值中的选择.

属性 说明 multiple 支持多选 size 列表框高度 optgroup 选项组 selected 选中状态 option 选项值

<form action="">
        <select multiple size="10">
            <option value="">选择课程</option>
            <optgroup label="后端">
                <option value="">JAVA</option>
                <option value="">PHP</option>
                <option value="">LINUX</option>
            </optgroup>

            <optgroup label="前端">
                <option value="">HTML</option>
                <option value="">CSS</option>
                <option value="">JAVASCRIPT</option>
            </optgroup>
        </select>
    </form>

11.4.10 RADIO

单选框指只能选择一个选项的表单,如性别的选择:男 , 女 , 保密 只能选择一个.

属性 说明 checked 选中状态

<form action="">
        <input type="radio" name="" id="boy" checked>
        <label for="boy">男</label>

        <input type="radio" name="" id="girl">
        <label for="girl">女</label>
    </form>

11.4.11 CHECKBOX

复选框指允许选择多个值的表单

属性 说明 checked 选中状态

<form action="">
        <input type="checkbox" name="JAVA" id="java">
        <label for="java">JAVA</label>

        <input type="checkbox" name="WEB" id="web">
        <label for="web">WEB</label>
    </form>

11.4.12 FILE

文件上传有很多方式,可以使用插件或者JS拖放上传处理.Html本身也提供了默认的上传功能,只是上传效果并不是很美观.

属性 说明 multiple 支持多选 accept 允许上传类型.png , .psd 或者 image/png , image/gif

<form action="" enctype="multipart/form-data">
        <input type="file">
        <input type="submit" value="上传">
    </form>

11.4.13 日期时间

属性 说明 min 最小时间 max 最大时间 step 间隔: date缺省是1天 week缺省是1周 month缺省是1月

a.日期选择

<h1>日期选择</h1>
    <form action="">
        <input type="date" step="5" min="2020-09-22" max="2025-01-15" name="datetime">
    </form>

b.周选择

<h1>周选择</h1>
    <input type="week" name="" id="">

c.月份选择

<h1>月选择</h1>
    <input type="month" name="" id="">

d.日期与时间

<h1>日期与时间</h1>
    <input type="datetime-local" name="" id="">

11.4.14 DATALIST

input表单的输入值选项列表

<form action="">
        <label for="username">用户名</label>
        <input type="text" name="" id="usernmae" list="less">
        <datalist id="less">
            <option value="JAVA">后台管理语言</option>
            <option value="CSS">美化网站页面</option>
            <option value="MYSQL">掌握数据库使用</option>
        </datalist>
    </form>

12、框架集

frameset元素可定义一个框架集。它被用来组织多个窗口(框架),每个框架存有独立的文档,在其最简单的应用中,frameset元素仅仅会规定在框架集中存在多少列或多少行,您必须使用cols或rows属性。

注意事项:由于是分割原网页,所以我们不能在body中进行编写,在head中进行分割。

标签 说明 frameset 框架集 frame 框架

属性 说明 cols 定义框架集中列的数目和尺寸 rows 定义框架集中行的数目和尺寸 frame border 去除框架边框 scrolling 去除滚动条

12.1 垂直框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html垂直框架</title>

    <frameset cols="50%,*" >
        <frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
        <frame src="http://www.taobao.com" frameborder="0"  scrolling="no"></frame>
    </frameset>
</head>
<body>
    
</body>
</html>

12.2 水平框架

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Html水平框架</title>
		<frameset rows="50%,*" >
				<frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
        <frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
		</frameset>
	</head>
<body>
</body>
</html>

12.3 混合框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html混合框架</title>

    <frameset rows="20%,*" >
        <frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
        <frameset cols="20%,*">
            <frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
            <frame src="https://www.huya.com/" frameborder="0" scrolling="no"></frame>
        </frameset>
        
    </frameset>
</head>
<body>
    
</body>
</html>

12.4 导航框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html美女</title>
</head>
<body>
    
    <img src="../images/10.jpg" alt="">

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html野兽</title>
</head>
<body>
    

    <img src="../images/timg.gif" alt="">

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html动物</title>
</head>
<body>
    
    <img src="../images/4.jpg" alt="">

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html链接</title>
</head>
<body>

    <a href="Html美女.html" target="view">美女图片</a>
    <a href="Html野兽.html" target="view">野兽图片</a>
    <a href="Html动物.html" target="view">动物图片</a>
    
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Html垂直框架</title>

    <frameset rows="20%,*" >
        <frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
        <frameset cols="20%,*">
            <frame src="Html链接.html" frameborder="0" scrolling="no"></frame>
            <frame src="https://www.huya.com/" frameborder="0" scrolling="no" name="view"></frame>
        </frameset>
        
    </frameset>
</head>
<body>
    
</body>
</html>

13、内联框架

iframe元素会创建包含另外一个文档的内联框架。

属性 说明 align 对齐方式,后期采用css的方式进行设置 width 设置宽度 height 设置高度 src 设置iframe中显示的文档的URL name iframe的名称 scrolling 是否显示滚动条 frameborder 设置iframe的边框