HTML4和HTML5的区别

面试官问H4和H5有什么区别(内心独白:MMP,不就是多了一些语义化的标签吗,难道让我把增加的标签和你说一遍吗?),作为一个不优秀的前端显然我没能回答好这个问题,所以有了这篇文章。

H5对H4升级的地方实在太多,本人能力有限主要整理了HTML部分,不详不正之处欢迎指正。

本篇文章主要参考文章:
HTML5与HTML4的区别 http://blog.csdn.net/superhoy/article/details/51637670 (这篇文章写得非常好,建议直接看这篇文章)
WEB前端之HTML5~HTML5与HTML4的区别 http://blog.csdn.net/actionActivity/article/details/53708282
HTML5与HTML4区别简介 https://segmentfault.com/a/1190000003976076

一、什么是HTML5&H5

HTML5 是对超文本标记语言的第五次重大修改,在2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,HTML5标准规范终于制定完成。
H5 是HTML5+CSS3+JS+API的统称(并不是官方定义)。可能PC端浏览器版本各种各样(说的就是IE),对H5的兼容并不好,所以后者通常被认为是移动端网页,也有人说H5是为了移动设备产生的。

二、HTML5相比HTML4有哪些区别

HTML5作为新的超文本编辑语言它是向下兼容的

  • 1.DOCTYPE声明的简化 <!DOCTYPE html>
  • 2.指定字符编码 <meta charset="UTF-8">
  • 3.新增内联SVG和Canvas <svg> <canvas>
  • 4.新增支持音视频 <video> <audio>
  • 5.元素标记的省略、具有boolean值的属性、省略引号
  • 6.不再使用frame框架,只支持iframe框架
  • 7.强调标签语义化,HTML5为了语义化增加修改了很多标签和属性
    • 新增的标签
      <section> <article> <main> <aside> <header> <footer> <nav> <figure> <figcaption> <template> <audio><video><source><track> <embed> <mark> <progress> <meter> <time> <ruby><rt><rp> <bdi> <wbr> <canvas> <datalist> <keygen> <output> <menu> ...
    • 修改的标签,主要是修改了语义
      <b> <i> <s> <small> <strong> <u> <address>...
    • 废除的标签
      <basefont> <big> <center> <font> <strike> <tt> <frame> <frameset> <noframes> <acronym> <applet> <isindex> <dir>
    • 新增的属性,HTML5新增了很多属性,后面有详细列出
    • 废弃的属性,废弃的属性也有很多,后面有详细列出
    • 修改的属性,(译注:大部分是限制放宽,略)
  • 8.本地数据存储类型(localStorage、sessionStorage)
  • 9.还有......,更多的我不清楚了,欢迎各位帮我补充。

三、详细解释

3.1 HTML5的DOCTYPE声明简化了很多

  • HTML5 不是基于SGML因此不需要引用DTD
    <!DOCTYPE html>
  • HTML4规定了三种的DOCTYPE声明方式,分别是:Strict、Transitional 和 Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

更详细资料请查看 https://www.cnblogs.com/zhengshihui/p/6868419.html

3.2 指定字符编码

  • HTML5:<meta charset="UTF-8">
  • HTML4:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

3.3 支持内联SVG和Canvas,<canvas>替代了Flash

关于SVG和Canvas了解甚少,我找了几篇文章供大家参考
https://my.oschina.net/whutzl/blog/528351
http://www.w3school.com.cn/html5/html_5_canvas_vs_svg.asp

3.4 HTML5支持音视频 <video> <audio>

HTML5将彻底代替FLASH,是什么让Adobe放弃了FLASH
https://baijiahao.baidu.com/s?id=1573954657320044&wfr=spider&for=pc

3.5 元素标记的省略、具有boolean值的属性、省略引号

具有boolean值的属性(常见的checked、selected、disabled、readonly)

http://blog.csdn.net/PrairieLoneWolf/article/details/8449187

3.6 不再使用frame框架

由于Frame框架对网页可用性存在负面影响,HTML5中不再支持 <frame>,只支持iframe框架,或者用服务器创建的多个页面组成的复合页面的形式。

3.7 语义化 (以下整理的内容并不是全部修改)

HTML5 非常强调语义化为此增加修改了很多标签,其中有的专注于结构,如<header> <article>有的专注于内容,如<data>

https://segmentfault.com/a/1190000005626375
https://www.jianshu.com/p/3d43727e04a5

以下更详细的内容请参考
MDN HTML5 标签列表 https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML5/HTML5_element_list
MDN HTML 元素参考 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element

3.7.1 新增的标签
标签(为了文档结构) 描述
article 定义独立于文档的一块内容,比如blog入口或报刊文章
section 定义文档中的一个章节
main 定义文档中主要或重要的内容
aside 定义和页面内容关联度较低的内容,如:侧边栏
header 定义页面或章节的头部
footer 定义页面或章节的尾部,可以包含作者、版权等信息
nav 定义只包含导航链接的章节
figure 代表一个和文档有关的图例
figcaption 代表一个图例的说明
template 可以用于声明一块可用于克隆与插入的HTML片段
...
标签(其它新标签) 描述
audio 音频
video 视频
source 为 <video> 或 <audio> 这类媒体元素指定媒体源
track 为 <video> 或 <audio> 这类媒体元素指定文本轨道(字幕)
embed 代表一个嵌入 的外部资源,如应用程序或交互内容
mark 代表一段需要被高亮的引用 文字
progress 代表进度条
meter 代表滑动条
time 代表日期 和时间 值
ruby、rt、rp 代表被ruby 注释 标记的文本,如中文汉字和它的拼音
bdi 代表需要脱离 父元素文本方向的一段文本
wbr 代表建议换行 (Word Break Opportunity)
canvas 位图区域
datalist 代表提供给其他控件的一组预定义选项
keygen 代表一个密钥对生成器 控件
output 代表计算值
menu 代表菜单
menuitem 代表一个用户可以点击的菜单项
...
3.7.2 修改的标签 (实在没找到详细资料,见谅)
标签 描述 HTML5 描述 HTML4
b 代表一段需要被关注的文字,不建议使用 粗体文本
i 代表一段不同性质的文字,如技术术语、外文短语等 斜体文本效果
s 代表不准确或不相关的内容,提倡使用<del><ins> 加删除线文本
u 代表一段需要下划线呈现的文本注释 下划线
small 代表注释 小号字体
strong 代表特别重要文字 着重强调
address 定义包含联系信息的一个章节 描述通讯地址
...
3.7.3 废除的标签 更多的请参考 MDN 过时的和弃用的元素
标签 描述 代替方法
basefont 用来设置文档的默认字体大小 使用CSS代替
font 定义了该内容的字体大小、顏色与表现 使用CSS代替
big 字体加大一号 使用CSS代替
center 这个元素的整个内容在它的上级元素中水平居中 使用CSS代替
strike 在文本上放置删除线 <del>或<s>
tt HTML 电报文本元素 (<tt>) 产生一个内联元素 带有 CSS的<code>或<span>来代替
frame、frameset 特定的窗口(框架) <iframe>
acronym 表示省略语 <abbr>
applet 包含了Java的applet <object>
isindex 对话框 <input>
dir 表示一个目录 <ul>
...
3.7.4 新增的属性
表单元素:
  • input的type属性增加的新类型 tel、search、url、email、date、time、number、range、color
  • form属性可用于在input、output、select、textarea、button、label、object、fieldset元素上指定关联的<form>元素的id,不局限于常规的层叠关系
  • input、textarea元素可使用placeholder属性来帮助用户填写数据,注意,它不应当替代label元素的作用
  • 可使用autofocus元素来制定自动获得焦点的元素(非type="hidden"的input、select、textarea、button的元素)
  • fieldset标签允许使用disabled属性,这将禁止所有子元素的交互;它同时还可以使用name以方便脚本获取
  • input元素有了用于指明输入限制的属性autocomplete, min,max, multiple, pattern及step
  • input type="image"的元素有width和height属性
  • input与textarea元素有了dirname以指明书写方向(译注:ltr或rtl)
  • textarea元素有了新的属性,如maxlength、minlength、wrap来控制最大输入长度与提交时的断行行为
  • form元素有了novalidate属性来禁止默认的表单验证行为
  • input与button元素有了formaction, formenctype, formmethod, formnovalidate与formtarget属性,用于覆盖继- 承自form的action, enctype, method, novalidate及target属性
  • input元素有了minlength和maxlength属性
非表单元素:
  • area元素同a和link元素一样有了新的hreflang、type、rel属性
  • base元素同a一样可以有target属性
  • meta元素有了charset属性
  • script元素有了async属性将影响脚本的加载与运行
  • html元素有manifest属性,可用于指定缓存行为
  • link元素有了新的属性sizes,可以指定不同的大小的favicon
  • ol元素有了新的属性reversed,它代表着列表的顺序是逆序的
  • iframe元素有了sandbox和srcdoc属性以支持沙盒安全保护
  • object元素有了typemustmatch元素以保证更安全的嵌入顺序
  • img元素有crossorigin属性以在canvas中支持CORS
  • contenteditable
  • data-*代表了开发定制的属性,这种格式可以避免与将来的新HTML属性冲突
  • hidden属性代表一个元素不再与文档相关
  • role及aria-*用于支持无障碍访问
  • spellcheck用于指定内容是否允许进行拼写检查
  • translate用于指定内容是否应当翻译
3.7.5 废弃的属性
这些属性被废弃,你可以找到你能够用以替代的属性或标签。
  • a废弃属性:shape, coords, rev, charset
  • area废弃属性:nohref
  • form废弃属性:accept
  • head废弃属性:profile
  • html废弃属性:version
  • iframe废弃属性:longdesc
  • img废弃属性:name
  • input废弃属性:usemap
  • link废弃属性:target, rev, charset
  • meta废弃属性:scheme
  • object废弃属性:archive, classid, codebase, codetype, declare, standby
  • param废弃属性:valuetype, type
  • table废弃属性:summary
  • td废弃属性:axis, abbr, scope
  • th废弃属性:axis
HTML不再包含纯用于表现的属性,它们应当被CSS替代:
  • caption, iframe, img, input, object, legend, table, hr, div, h1, h2, h3, h4, h5, h6, p, col, colgroup,tbody, td, - tfoot, th, thead和tr的align属性被废弃
  • body的alink, link, text, background属性被废弃
  • table, tr, td, th和body的bgcolor属性被废弃
  • object的border属性被废弃
  • table的cellpadding和cellspacing属性被废弃
  • col, colgroup, tbody, td, tfoot, th, thead和tr的char和charoff属性被废弃
  • br的clear属性被废弃
  • dl, ol和ul的compact属性被废弃
  • table的frame属性被废弃
  • iframe的frameborder属性被废弃
  • td和th的height属性被废弃
  • img和object的hspace和vspace属性被废弃
  • iframe的marginheight和marginwidth属性被废弃
  • hr的noshade属性被废弃
  • td和th的nowrap属性被废弃
  • table的rules属性被废弃
  • iframe的scrolling属性被废弃
  • hr的size属性被废弃
  • li,和ul的type属性被废弃
  • col, colgroup, tbody, td, tfoot, th, thead和tr的valign属性被废弃
  • hr, table, td, th, col, colgroup和pre的width属性被废弃
下列属性允许使用,但不鼓励被使用:
  • img元素上的border属性。如果使用,要求使用0作为值。应当替代为CSS控制
  • script元素上的language属性。如果使用,要求使用JavaScript(不区分大小写),同时不应当与type属性冲突。由于它没有实际意义,开发应当省略它
  • a的name属性。开发应当使用id来替代它
3.7.6 修改的属性,(译注:大部分是限制放宽,略)

3.8本地数据存储类型

HTML5 提供了两种在客户端存储数据的新方法:
1)localStorage - 没有时间限制的数据存储
2)sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。
对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。
HTML5 使用 JavaScript 来存储和访问数据。

学习localStorage和sessionStorage使用方法可以参考
http://blog.csdn.net/feiying008/article/details/52150192

本文最后再次建议读者看这篇文章,比我整理的全面很多
HTML5与HTML4的区别 http://blog.csdn.net/superhoy/article/details/51637670

本文全部内容均是自己整理或网络摘抄,未经过校验,如有错误欢迎指出。
欢迎转载,但请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 本文主要介绍Html5和Html4的区别。 语法的改变 内容类型HTML5 的文件扩展符与内容类型保持不变。扩展符...
    layjoy阅读 1,822评论 0 23
  • HTML5< !--...--> 标签 comment 注释标签用于在源文档中插入注释。注释内容不会被浏览器显示。...
    野小宝阅读 1,311评论 0 10
  • HTML5 标签comment 注释标签用于在源文档中插入注释。注释内容不会被浏览器显示。为代码编写注释的好处是...
    才気莮孒阅读 4,044评论 1 25
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,828评论 0 0
  • 2018的伊始 姐,给你听一首歌好不? 不听 听咯。 不听 听咯。 不听,不听王八念经
    玖壹年阅读 308评论 0 0