2.1 XHTML 的规范化
XHTML 简介
什么是 XHTML
XHTML 指的是可扩展超文本标记语言。而且 XHTML 与 HTML4.01 几乎是相通的,在语法与书写形式上,XHTML是更严格更纯净的 HTML 版本,是以 XML 应用的方式定义的 HTML。这是 XHTML 的一个简介。包括目前来说一些主流的浏览器都是对它支持的。
为什么使用 XHTML
为了代码的完整性和良好性。我们经常看的一些很多代码很乱,我们也会通过书写格式来给大家展示。
文档声明
我们接着看一下它的文档声明,如何来应用一个 XHTML。首先了解一下 DTD:规定了使用通用标记语言的网页语法。它也有三种文档类型:
- STRICT (严格类型)
- TRANSITIONAL (过渡类型)
- FRAMESET (框架类型)
例如:
XHTML 1.0 Strict: <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
这是一个严格类型的例子,简单了解一下就可以。在 HTML5 的方式里面不需要去添加这么一个文档的声明,因为我们按照它的格式去书写 HTML5 格式的代码就可以了。
下面我们来看一下不规范代码,新建一个 XHTMLDemo.html 文件写入下面内容:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <h1>这是一个标题 <p>大家好 </body> </html>
这个代码明显是有问题的,首先我们可以看到这个 h1 和 p 的标签都没有进行结束,这个代码在浏览器中是可以显示的,我们用浏览器打开这个文件可以看到效果:
但是这个代码格式书写是不规范的,这种代码会影响后面的数据,我们修改一下代码:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <h1>这是一个标题 <p>大家好 abcd </body> </html>
我们保存刷新下浏览器:
大家会发现 abcd 添加到我们的 p 标签后面了,相同的类型一直在向下延续。再比如我们加入个标签:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <h1>这是一个标题 <p>大家好 abcd <A href="index.html">index</A> </body> </html>
然后刷新浏览器:
它是可以正常跳转的。但是肯定也是一个不规范的标签,因为我们知道超链接标签一般是一个 a ,这就是代码的不规范。如果我们加入了 XHTML 的声明的话,这种代码都会给我们一个相应的提示。这部分大家需要知道我们要用一个标准的方式去书写就可以了。下面我们来看一下它有哪些标准方式。
XHTML 元素
XHTML 元素的语法
- XHTML 元素必须正确嵌套
<h1><p>Hello</p><h1>
这是一个正确的嵌套,但是如果我们这样来写:
<h1><p>hello</h1></p>
这是一个错误的嵌套,当然在浏览器中执行是没有问题的。但这种嵌套属于一个错误的嵌套。所 以这种情况务必要注意。
- XHTML元素必须始终关闭
有两种标签,像<p></p>
,我们必须使用一对进行关闭。还有像 <br />
,我们也必须用一个 /
进行关闭。
- XHTML元素必须小写
例如 必须小写,大写是不可以的,虽然可以显示,但是却是一个不规范的写法。
- XHTML文档必须有一个根元素
在 HTML 文件中 <html>
、<head>
、<body>
等根元素是必须要有的。虽然去掉 <body>
也可以展示内容,但是这是不规范的。
之前讲的一些框架它不能在 <body>
里面,是由一些冲突的。在 DTD
声明中有些是包含框架的有些是不包含框架的。
XHTML 属性
XHTML 属性的语法规则
- XHTML 属性必须使用小写
<table width="100"></table> //这是规范的 <table WIDTH="100"></table> //虽然运行效果一样,但是这是不规范的
- XHTML 属性值必须用引号包围
<table width=100></table> //这也是不规范的
- XHTML 属性最小化也是禁止的
// 比如我们要写一个表单 <form> <input type="button"> </form> //这是一个错误示例 <form> <input button> </form>
这些规范性希望大家可以记住。