HTML的全称是(Hyper Text Markup Language )即超文本标记语言,它是互联网上应用最广泛的标记语言。不要把HTML语言和Java、C等编程语言混淆起来,HTML只是一种标记语言,简单地说,HTML文件就是普通文本+HTML标记(HTML标签),和不同的标记就能表示不同的效果。
1.HTML发展历史
HTML1.0 | 在1993年6月作为互联网工程工作小组(IETF)工作草案发布 |
HTML 2.0 | 1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时 |
HTML 3.2 | 1996年1月14日,W3C推荐标准 |
HTML 4.0 | 1997年12月18日,W3C推荐标准 |
HTML 4.1 | 1999年12月24日,W3C推荐标准 |
XHTML | 发布与2000年1月26日,是W3C组织推荐标准,后来经修订与2002年8月1日重新发布 |
HTML5 | 第一份正式草案已于2008年1月22日公布,现仍继续完善。 |
2.HTML4.01与XHTML
XHTML的全称是(EXtensible HyperText Markup Language,扩展的超文本标记语言),XHTML和HTML4.01具有很好的兼容性,而且XHTML是更严格、更纯净的HTML代码。HTML有很多不规范的地方,而XHTML致力于消除这种不规范,XHTML要求HTML文档首先必须是一份XML文档。XML文档是一种结构化文档,它有如下4条基本原则:
- 整个文档有且只有一个更元素
- 每个元素都由开始标签好结束标签组成(例如:<a></a>就是开始标签和结束标签),除非使用空元素语法(例如<br>就 是空元素语法)
- 元素与元素之间应该合理嵌套,例如<div><span>hello word</span></div>,可以明确地看出<span>元素是<div>元素的子元素,这就是合理的嵌套;<div><span>hello word</div></span>,这种写法就比较
- 元素的属性必须有属性值,而且属性值应该在引号(单引号或双引号都可以)引起来。
3.HTML与XHTML的文档定义类型(DTD)
从表面上看,HTML和XHTML显得杂乱无脏,但实际上W3C制定了严格的语义约束,使用了DTD(Document Type Definition,文档类型定义)来定义HTML和XHTML的语义约束。关于DTD的详细介绍可以看我的博客-->点击打开链接
4.从XHTML到HTML5
虽然W3C努力为HTML制定规范,但由于绝大部分编写HTML页面并没有受过专业训练,他们对HTML规范、XHTML规范也不怎么了解,所有他们制定的HTML网页绝大部分没有遵守HTML规范。HTML规范:
- 元素的标签名用了大小写混乱的情况。比如:<p>html</P>
- 元素没有合理结束的情况。比如只有<p>标签,没有</p>结束标签
- 元素中使用了属性,但没有指定属性的情况。比如:<Input type="text" disabled>
- 为元素的属性指定属性值时没有使用引号的情况。比如:<input type=text>,可能是出于存在合理的考虑,WHATWG组织开始制定一种妥协式的规范:HTML5。
5.HTML优势
5.1 解决了跨浏览器问题
对于有过实际开发经验的前端程序员来说,跨浏览器问题绝对是一个永恒的噩梦:明明在一个浏览器中科院正常运行的HTML+CSS+JAVASCRIPT页面,但换一个浏览器之后,就会出现很多问题,比如:JavaScript运行出错、页面布局混乱等,因此前端程序员会先判断对方浏览器,然后根据对方浏览器编写不同的页面代码。HTML5的出现可能改变了这种局面,目前主流浏览器如Edage(Internet Explorer)、Chorme、Firefox、Safari都表现出对HTML5的极大热情。
5.2 部分代替了原来的JavaScript
HTML5增加了一些非常实用的功能,例如,打开一个页面立即让某个单行文本框获得输入焦点,在HTML5之前要通过JavaScript来实现。
图书:<input type="text" name="book" id="name"/><br/>
价格:<input type="text" name="price" id="price"/>
<script type="text/javascript">
document.getElementById("price").focus();
</script>
在HTML5中只需要设置一个属性即可
图书:<input type=text name=book/><br/>
价格:<input type=text autofocus name=price/>
5.3 更明确的语义支持
在HTML5以前,如果要表达一个文档结构,可能只通过<div>元素来实现,HTML5则可以提供更明确的语义元素
<header>.........</header>
<nav>...............</nav>
<article>
<section></section>
</article>
<aside>...............</aside>
<footer>..............</footer>
上面的页面片段就可以提供更清晰的语义了,而不是通过语义不清的<div>元素来完成布局。除此之外,以前的HTML会通过<em>元素来表示被强调的内容,但到底是哪一种强调,HTML却无法表达;HTML5则提供了更多支持语义的强调元素,例如:<time>2017-11-11</time> -----强调的是日期或时间、<mark>被标记的文本</mark>---强调被标记的文本。
5.4 增强了WEB应用程序的功能
一直以来,HTML页面的功能被死死地限制着:客户端从服务器下载HTML页面数据,浏览器负责呈现这些HTML页面数据。出于客户机安全性的考虑,以前的HTML在安全性方面确实做得足够安全。
当做得足够安全后,就需要JavaScript等其他方式来增加HTML的功能。换句话说,HTML对WEB程序而言太单薄了,比如文件上传时想同时选择多文件都不行(前端开发者不得不通过Flash、JavaScript等各种技术来克服这个因素),为补充这种不足,HTML5规范增加了不少新的API,比如HTML5新增的本地存储API、文件访问功能,在未来的日子里,我相信使用HTML5开发WEB应用将会更加轻松。
6.HTML的基本结构和语法
首先要明确一点,HTML5并不是对HTML4、XHTML的革命,也就是说原来的HTML4开发的HTML网页同样可用;如果开发者受过严格训练,喜欢XHTML那种严格、规范、语法,同样可以按XHTML的严格要求来开发HTML5。(个人建议使用严格的语法格式) Html5完全遵守以下3点原则:
- 兼容性:HTML5在老版本的浏览器也可以运行
- 实用性:HTML5内部并没有特别复杂的功能,它只是封装了简单功能
- 非革命性:HTML5并不是革命式的发展,是一种妥协式的规范
6.1 HTML5的基本结构
HTML5,只要把XHTML中的DTD声明改为<!DOCTYPE html>;HTML5支持两种方式来指定页面的字符集
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset=utf-8" />
6.2HTML5的语法变化
6.2.1 标签不再区分大小写
6.2.2 元素可以省略结束标签,例如:
<p>
<ol>
<li>aaaa
<li>bbbb
<li>ccccc
<img src="a.gif" alt="a"/>
</ol>
6.2.3 支持Boolean值的属性
<input checked type="checkbox"/> 相当于之前的<input checked="checked" type="checkbox"/>
6.2.4允许属性值不使用引号
<option value=java>Java</option>
重点:HTML5语法的改变
1.标签不再区分大小写 2.元素可以省略结束标签 3.支持Boolean值的属性 4.允许属性值不使用引号
--------------如果大家喜欢我的博客,可以点击左上角的关注哦。