张蕾的技术博客让前端飞WEB前端程序开发

HTML4和HTML5的区别

2018-03-09  本文已影响22人  黑雷

面试官问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作为新的超文本编辑语言它是向下兼容的

三、详细解释

3.1 HTML5的DOCTYPE声明简化了很多

<!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 指定字符编码

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 新增的属性
表单元素:
非表单元素:
3.7.5 废弃的属性
这些属性被废弃,你可以找到你能够用以替代的属性或标签。
HTML不再包含纯用于表现的属性,它们应当被CSS替代:
下列属性允许使用,但不鼓励被使用:
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

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

上一篇 下一篇

猜你喜欢

热点阅读