简介
一看到HTML就想到它的中文意思超文本标记语言,那么它和我们接触过的其他编程语言有什么不一样呢?比如C、Java、python等等。其实答案就在字面意思上,它是一种标记语言,并非编程语言。它是一种用于创建网页的标准标记语言。
历史
看完基本介绍,那HTML怎么来的呢?我们一起来翻阅一下历史
HTML1.0–HTML4.0
从HTML1.0到HTML4.0,HTML一直是SGML(标准通用标记语言)的一个应用,说到SGML不得不说一下DTD(文档类型定义)了,我们先看一下HTML4文档类型声明
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
大家可以用浏览器打开http://www.w3.org/TR/html4/strict.dtd看看里面的介绍,里面包含了整个HTML4的定义。其中由以下几行
This version of the frameset DTD is:
http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
Use the following (relative) URIs to refer to the DTDs and entity definitions of this specification:
"strict.dtd"
"loose.dtd"
"frameset.dtd"
"HTMLlat1.ent"
"HTMLsymbol.ent"
"HTMLspecial.ent"
翻译过来就是HTML4.0的DTD规范和定义的实体,我们可以看一下三个定义的实体,分别点击以下三个链接
- http://www.w3.org/TR/1999/REC-html401-19991224/HTMLlat1.ent
- http://www.w3.org/TR/1999/REC-html401-19991224/HTMLsymbol.ent
- http://www.w3.org/TR/1999/REC-html401-19991224/HTMLspecial.ent
会下载这三个实体的文件,我们用编辑器打开HTMLlat1.ent
可以看到常见的nbsp
定义
<!ENTITY nbsp CDATA " " -- no-break space = non-breaking space,U+00A0 ISOnum -->
我们继续看HTMLsymbol.ent
,可以发现一些字符的定义。比如Ω
、α
和β
,定义如下
<!ENTITY Omega CDATA "Ω" -- greek capital letter omega,
U+03A9 ISOgrk3 -->
<!ENTITY alpha CDATA "α" -- greek small letter alpha,
U+03B1 ISOgrk3 -->
<!ENTITY beta CDATA "β" -- greek small letter beta, U+03B2 ISOgrk3 -->
然后就是HTMLspecial.ent
了,可以发现一些常用的字符转译。比如&
、<
和 >
,定义如下
<!ENTITY amp CDATA "&" -- ampersand, U+0026 ISOnum -->
<!ENTITY lt CDATA "<" -- less-than sign, U+003C ISOnum -->
<!ENTITY gt CDATA ">" -- greater-than sign, U+003E ISOnum -->
这些字符大家可以这样使用,我这里就拿lt
举例了,写法如下
<p><</p>
大家可以新建个.html文件然后在浏览器打开这个文件,就会看到<
了。
以上就是HTML4.0(包含HTML4.0)以前的定义了。
XHTML
我们再回过头来看一下XHTML,中文意思就是可拓展超文本标记语言,与HTML一样属于标记语言,表现形式与HMTL类似,不过语法更加严格。XHTML基于XML,而XML又是SGML的一个子集,所以它也有DTD,以下是XHTML的DTD,大家可以浏览器打开看一下
https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd
我们会看到这一行
This is XHTML, a reformulation of HTML as a modular XML application.
说的是将HTML重制成模块化XML程序,也就验证了XHTML是XML的一个子集。
HTML与XHTML的区别
那么XHTML与HTML有啥区别呢?为啥说与HTML类似但是语法更严格了呢?XHTML与HTML区别有以下几点:
-
XHTML必须声明
<!DOCTYPE>
-
XHTML的xmlns属性必须在
<html>
里 -
XHTML必须包含
<html>
,<head>
,<title>
和<body>
-
XHTML元素必须是嵌套的,比如
<b><i>文本<i><b>
-
XHTML元素必须有闭合标签,比如
<p>文本</p>
-
XHTML元素标签必须小写
-
XHTML属性名必须小写
-
XHTML属性值必须有引号
-
XHTML属性必须包含属性名和属性值
以上都是XHTML的特有的,HTML其实都没有要求这么严格的。