WEB标准与XHTML 1.0 Transitional等文档类型介绍(2)
作者:Dflying Chen 来源:Dflying Chen 发布时间:2007-10-20 21:18:00
一个XHTML页面必须是一个组织完善的并且合法的XML文档。XHTML 1.0 recommendation 的第四部分详细介绍了HTML与XHTML的若干不同点,正力柱来最为重要的有如下十条:
页面必须包含一个合法的XHTML DOCTYPE。
一个合法的XHTML页面必须再起其他内容出现前包含XHTML DOCTYPE定义。当你在Visual Studio 2005或者Microsoft Visual Web Developer中创建一个新的ASP.NET页面时。一个合法的XHTML 1.0 Transitional DOCTYPE已经被自动加入到页面当中了。下面是四种标准的XHTML DOCTYPE:
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">不同的XHTML DOCTYPE也将决定浏览器将如何显示某些特定的内容,这些将会在今后几篇文章中讨论。
页面的根节点必须指定XHTML的命名空间。
<html>标记必须指定一个默认的命名空间。例如一个XHTML 1.0 Transitional页面应该有如下声明:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
所有的标记以及属性名称必须为小写字母。
XML语法是大小写敏感的,所以<div>与<DIV>是不同的标记,当然,只有<div>是合法的XHTML标记。
属性值必须书写于一对引号内。
引号可以为双引号,也可为单引号。如下声明是不合法的:
<a href=Page.aspx>Link</a>
这里缺少了包围Page.aspx的引号,应当如下书写:
<a href="Page.aspx">Link</a>
Visual Studio 2005 和Visual Web Developer可以自动把属性值用引号括起来。这一功能可以在Tools, Options, Format中设定。
所有非空的标记必须成对出现。
也就是说,单独的<p>或者<br>都是不合法的,需要有相应的闭合标记。
这里特别要说明的是常用的<br>标记。满足XHTML语法的换行标记应该为<br></br>或者简写为<br />,然而在一些浏览器中会把<br></br>中的</br>视为错误拼写的<br>标签,并尝试加以更正为另一个<br>,这样就造成了两个换行。为了避免这些不必要的麻烦,推荐书写为<br />。同样需要注意的是有些浏览器不能识别<br/>(注意'/'前没有空格),所以不要忘记在'/'前加上一个空格。


猜你喜欢
- 这个问题是如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用。为那些还不清楚它的人,Py
- 大家好,都说追女孩方法大于态度,学Python也是,今天就给大家分享的是我在用Python编写程序时常用的一些小技巧。1.多次打印同一个字符
- str字符串s = '中文' # s: <type 'str'>s是个str对象,中
- 这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型。import tensorflow as tffrom tensorflo
- 一、http协议无状态问题http协议没有提供多次请求之间的关联功能,协议的本意也并未考虑到多次请求之间的状态维持,每一次请求都被协议认为是
- 背景最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两
- 属性在运行时的动态替换,叫做猴子补丁(Monkey Patch)。为什么叫猴子补丁属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上
- 本文实例为大家分享了Python实现简单的2048小游戏的具体代码,供大家参考,具体内容如下运行效果:1.项目结构2.代码configs.p
- 由于要学习搭建服务器和数据库,所以最近开始自学sql语言了,至于写数据库就用比较基础的Mysql数据库了,虽然Mysql已经被互联网公司所淘
- python -m 和 python 的区别-m 的含义表示将库当作脚本来执行。python file.py正常的执行Python脚本似乎都
- 本文实例讲述了JS创建对象的写法。分享给大家供大家参考,具体如下:写法1:<script>var database = func
- 本文实例为大家分享了vue实现全屏滚动效果(的具体代码,供大家参考,具体内容如下是什么网页的一个页面占据一屏的宽高,多个页面上下或者左右拼接
- 起因:有一批数据需要每个月进行分析,数据存储在excel中,行标题一致,需要横向合并进行分析。数据示意:具有多个代码:# -*- codin
- 印象中,以前电脑不发达,自身编程经历不多的时候,由于Microsoft SQL Server版本众多,在不同版本的windows下必须要求装
- Go 程序运行时,有些场景下会导致进程进入某个“高点”,然后就再也下不来了。比如,多年前曹大写过的一
- 这里简单介绍下两种安装docker-compose的方式,第一种方式相对简单,但是由于网络问题,常常安装不上,并且经常会断开,第二种方式略微
- 前言命令模式,也称为动作或者事务模式,很多教材会用饭馆来举例。作为顾客的我们是命令的下达者,服务员是这个命令的接收者,菜单是这个实际的命令,
- 众所周知:python json 可以转换的json字符串,但是在将其转换为字典时,出现了乱序字典是一个散列结构,亦即他自身根据key进行排
- 说明本例子利用TensorFlow搭建一个全连接神经网络,实现对MNIST手写数字的识别。先上代码from tensorflow.examp
- 本文实例讲述了JavaScript 扩展运算符用法。分享给大家供大家参考,具体如下:扩展运算符格式扩展运算符格式很简单,就是三个点(…)重点