正确理解HTML,XHTML页面的头部doctype定义

HTML基础:DOCTYPE与元素分类 本文将探讨HTML的不同版本声明以及如何使用DOCTYPE声明来指定页面的HTML标准。同时,深入解析HTML中的注释、id和class属性的用途,以及块级元素和内联元素的区分和使用。通过对HTML基本概念的讲解,帮助读者更好地理解和组织HTML代码。 阅读详情
摘自http://www.west263.com/info/html/wangyezhizuo/css/20080225/42390.html
当我们制作页面的时候,总会在它的源码头部看到一串声明,比如最常见的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果我们把这些代码去掉,会发现页面可能会有比较明显的变化,因为这样造成了有些样式的表现不一样。
这些代码我们称做DOCTYPE声明。DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。
其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。
要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。
XHTML 1.0 提供了三种DTD声明可供选择:
过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如
。完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
理想情况当然是严格的DTD,但对于我们大多数刚接触web标准的设计师来说,过渡的DTD(XHTML 1.0 Transitional)是目前理想选择。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。


==========================下面原创====================
正如我们理解的那样,上面的我们最常看见的解释了.
但是今天我看到了一本外国文档,它的解释让一切变得是那么的简单,这很能说明国内的翻译人员大多故弄玄虚,将简单的学问搞复杂.好了不多说了.开始sharing.
为什么MIME 类型很重要,为什么我老是想起他们?
三个字:(draconian error handing)严格的错误处理.浏览器一直都是"宽容HTML的错误的".如果你在创建一个HTML页面的时候忘记了
<title>标签,浏览器也是照样可以显示你的html内容.尽管<title>元素任何版本的HTML中都是一直要求出现在页面中的.同样,如果你在页面中使用了一些不允许的标签时,浏览器也会尽可能的解释它,并且不会报出错误.
可能这正是你所期待的,事实上这些残缺的标签能够在浏览器上运行导致了web程序员继续创建这些垃圾的残缺的代码.经过评估发现,网络上99%的web页面至少存在一个错误.因为这些错误并没有的导致浏览器在页面显示这些错误,所以就没有人去修复这个bug.
但是W3C组织却认为这是一个基本的问题.并且着手来订正它.
XML,在1997年发布了.打破了浏览器容许HTML代码有错的传统,要求使用XML的语言必须将这些问题当成是错误并报告给终端用户.
当W3C将HTML修改为XML时,相应的用户的代码的MIME类型需要修改为
application/xhtml+xml,也就是将后缀改为(xhtml)
这样可以进行错误处理.如果你的XHTML页面中有一个错误,那么浏览器就会停止进程并且报告错误给终端用户.
这个观点并不是很流行,由于评估的有99%的网站存在问题,所以经常出现的问题
让XHTML1.0 和XHTML1.1 的新特性完全得不到体现.网站程序员基本上直接忽略
application/xhtml+xml ,在并不意味则他们同样放弃了XHTML.
附带的XHTML给网站程序员一个后门,用一些类似于XHTML的语法,但是还是使用
text/html MIME 类型.这就是我们现在成千上万的网站的做法 .
即使是今天,许多网页通过声明为XHTML类型,他们通过在页面的第一行声明XHTML doctype
使用小写的标签名称,在属性上面使用引号.在空元素后面加斜杠如<br/> <hr/>
仅仅这些很小的部分通过application/xhtml+xml MIME 类型触发错误处理.
任何页面如果它的MIME类型是text/html,那么无论它的doctype,语法,代码风格是什么样子的.将会使用容错的html解释器,忽略标记的错误.


好了,我总结一下,我们现在经常写的页面,其实就是这个后门的体现.
那么,不这么定义头行不行?
现在是行了,但是如果是以前老版本的浏览器,你的网站可能就面目全非了.
如果你想编写能够兼容很多浏览器的网站,那么推荐你还是使用


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


它要求非常宽松的DTD,它允许你继续使用HTML4.01的标识.
可以说XHTML 1.0是更加严格和纯粹的HTML 4.01 版本.
当然你也可以使用
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
这种纯粹的HTML4.01 为什么需要头呢.
因为在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。


为什么都是Transitional这种类型的..这是过渡的版本,兼容性更好.


然后将MIME类型改为我们的text/html.文件后缀为(html)为什么要这么多此一举呢?因为大多数浏览器
遵循XHTML1.0 或者XHTML 1.1,或者使用HTML 4.01 它们有了一些新的特性.我们都想用这些新特性,但是又不想让自己的页面报错.折中的办法应该就是这样了.
但是对于大多数网站程序员来说,我想他们其实就是所谓的"挂羊头卖狗肉"吧.
新特性没用到,还因为这些无厘头的头部把自己的代码搞的云里雾里的.
幸好,我们的HTML5时代来临了.所有的这些都将成为历史.
HTML5不是基于SGML的,所以不需要引用DTD.只需要
<!DOCTYPE html>


That is all.
Best Wishes....







HTML基础与实战项目解析:GeniusAcid.bt83m2qfpm.gaIQwCQ源码研究 随着Web Components的发展,开发者可创建自定义元素(custom elements),此时命名必须包含至少一个连字符(hyphen),以区别于原生标签:此举防止未来HTML标准扩展时产生命名冲突,体现了良好的前瞻性设计。data-*属性是实现轻量级组件状态管理的有效手段,特别适用于不需要 React/Vue 等框架的简单交互场景。自定义元素是 Web Components 的入口机制,它允许我们通过方法注册一个全新的 HTML 标签名称,并将其绑定到一个继承自的类上。 阅读详情

相关推荐

国密系列算法简介

众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现。其中SM1、SM7算法不公开,调用该...

HardessGod的博客 5774

XHTML学习笔记——XHTML基础

10.1 XHTML简介 HTML语言中只有有限的创建元素,因此无法处理非常规的内容,同时HTML不能很好地支持不断更新的显示媒体,如手机等。而XHTML是XML的一种应用,因此所有XML的处理器都可以处理XHTML文档,使语言具有了可扩展性。 XHTML提倡使用更加简洁和规范的代码,使得代码的阅读和处理更方便,同时也便于搜索引擎的检索。 XHTML文档在旧的基于HTML的浏览器中能够表现在和新的...

菜鸟的编程之路 404

matlab 图像合成_用MATLAB做图像合成加雾的处理

众所周知,现在有很多算法来对图像进行去雾处理。但反之,对图像增加雾的代码却少之又少,本代码就是基于Matlab实现了对图像的加雾处理。该方法可用做雾天图像的合成数据集。代码公开如下:clear;clc; % close all; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%i...

weixin_35719260的博客 2060

DOCTYPE以及html和Xhtml的区别

今天看了两道题,我觉得有必要将他整理一下,因为这个某公司的一个面试题,这道题相对来说还是非常经典的,所以说我们来看看下面的一个代码 html中的这个DOCTYPE有什么作用? 下面来看看这道题的一个标准答案: 他用于声明一个文档类型,和DTD(Document Type Definition)规范,确保不同的这个浏览器可以用相同的方式进行一个文档的一个解读,以及他执行相同的渲染模式,DTD就是这样这样的一个文档的类型定义,所以说,我们的这个标记符的语法规则就是保证 ...

weixin_58155696的博客 504

帆软报表JS导出避坑指南:如何正确处理sessionid和参数传递

本文深入探讨了帆软报表中通过JavaScript实现一键导出的关键技术,重点解析了如何正确获取并传递sessionid以确保会话不丢失,以及如何构造包含必要参数的导出URL。文章详细对比了预览后导出与直接URL导出两种方式的差异,并提供了从参数拼接、前端触发下载到高级场景(如SPA集成)的完整避坑指南,帮助开发者构建稳定可靠的自定义导出功能。

weixin_42522857的博客 161

MySQL连接异常:Communications link failure 解决方案

困扰一晚上的问题终于解决了。

weixin_44704776的博客 1085

DOCTYPE元素详解

一.概述 本文系统的讲解DOCTYPE元素.同时查证了很多的资料.因为互联网上面的资料比较杂乱,所以经过收集整理我进行了重新定义.比如对于DOCTYPE元素的定义.主要分为基础知识和高级知识.基础知识讲解基本的DOCTYPE知识. 高级知识很多来自网络收集, 主要是实际应用的一些技巧. 二.定义 DOCTYPE是文档类型(Document Type)的缩写, <!DOCT...

diaoshisun9421的博客 234

基于javaEE的图书管理系统

极简的图书管理系统,无任何样式修饰,适合新手练手(图文并释) 1、实现了用户注册、登录,图书的添加、修改、删除和修改操作 2、工具需要:eclipse、mysql、Tomcat 3、做系统之前在eclipse需要配置Tomcat服务器和导入mysql连接数据库的jar包 4、数据库中建一个user表存用户信息,一个book表存图书信息 一、各种页面 index.html文件,系统运行的首页,有登录...

qq_44357792的博客 2万+

Doctype以及xhtml、html的区别

DOCTYPE是Document Type(文档类型)的简写,简单来说就是用来告知浏览器的解析器用什么文档标准去解析这个文档。 notice:它必须放在文档最顶部,所有代码和标识之上 它的作用:   首先doctype声明指出浏览器应该用什么规则集来解释文档中的标记。其中的规则就是W3C所发布的一个文档类型定义(DTD)中包含的规则。每一个DTD都包含一系列标记、attri...

dizhen6501的博客 252

python实现边缘检测Canny算子 (附完整源码)

python实现边缘检测Canny算子 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 456

使用 MATLAB/Simulink 搭建一个 无人机群间数据交换与协同控制仿真系统

本文提供了一份详细的Simulink无人机群协同控制仿真教程。主要内容包括:无人机群系统架构设计(去中心化网络、通信分层)、三维运动建模、空-空通信链路实现(距离判断、无线信道)、分布式Consensus控制算法开发,以及性能评估指标设定。教程采用模块化设计思路,通过ModelReference构建多无人机并行模型,并给出了MATLAB函数实现关键算法。最后展示了预期仿真结果(收敛时间<15s、位置偏差<2m)和进阶应用方向(编队飞行、AI协同等),帮助读者掌握群体智能系统的建模与仿真方法。

amy_mhd的博客 155

xhtml,html头部声明

当我们制作页面的时候,总会在它的源码头部看到一串声明,比如最常见的 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; 如果我们把这些代码去掉,会发现页面可能会有比较明显的变化,因为这样造成了...

iteye_10902的博客 299

自适应控制 (Adaptive Control) 算法详解及案例分析

自适应控制是一种能够在线调整控制器参数以适应系统动态变化的控制方法。其核心思想是通过实时估计系统参数或调整控制器参数,使系统在不确定性或动态变化的环境中仍能保持稳定性和性能。

闲人编程的博客 4081

HTML---泷羽sec学习记录

html基础免责声明学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。B站地址:https://space.bilibili.com/350329294Html基本概述HTML(HyperText Markup Language,超文本标记语言)是用于创建网页的标准标记语言,它通过一系列标签来定义网页的结构和内容,使得浏览器能够正确地显示网页。

2302_80432320的博客 831

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

clientWidth,clientHeight,offsetWidth,offsetHeigh含义

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33994444的博客 121

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

XHTML的DOCTYPE

一个XHTML文档必须得有XHTML文档主要由下面三个方面构成 DOCTYPE Head Body 基本的文档结构为:... ... 文档声明必须出现在XHTML文档的首行。 XHTML DTD所描述的XHTML标签是精确的,计算机易读性好的,语法和文理都合适的 当前的三类 XHTML 文档类型:STRICT 严密型 TRANSITIONAL 过渡型 FRAMESET 框架型严密型

霸王棍专栏 870

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[HTML]DOCTYPE标签、XHTML与HTML的区别

HTML <DOCTYPE>经常在html文档头部看到类似下面的声明,一直很疑惑,不清楚它的意思,也不清楚和html和xhtml有什么区别…<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!DOCTYPE> DocType Decaration

Feathers的个人笔记 2758

xhtml 的三种 doctype

{1}文档宣告 <!ODCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 [there]//EN" "http://www.w4org/TR/xhtml1/DTD/xhtml1-[there].dtd"> [there] 1.Transational过渡(通常使用) 2.Strict严格 3.Franeset框架 {2}声明编码 <ht...

weixin_30768175的博客 317

DOCTYPE作用及用法详解

一、浏览器呈现模式和doctype 有的网页是遵循标准而创作的,但也有很多不是。即使你不能创建遵循标准的网页,也希望浏览器根据标准来正确显示那些页。目前,大量网页充斥着大量非标准代码,它们仍能正常地工作。事实上,为旧版浏览器设计的大多数代码都能在新版浏览器中正确显示(虽然呈现方式可能有所区别)。这是什么原因呢?事实上,假如严格遵循最新标准,会完全破坏那些页的生存基础。对于任何希望有所...

weixin_33889665的博客 1178

简述html中Doctype的作用,HTML中doctype的作用及几种类型详解

一、DOCTYPE标签的定义与作用是一个用于声明当前HTMl版本,用来告知web浏览器该文档使用是哪种 HTML 或者 XHTML 规范来解析页面,以便浏览器更加准确的理解页面内容,更加良好地展现内容效果!二、DOCTYPE标签的特点1. 标签没有结束标签;2.声明被所有主流浏览器支持;3.声明不是一个HTML标签,在HTML5中是可以不区分大小写的;4.声明必须位于HTML文档中最前面,处于标签...

weixin_42466723的博客 1412

html、xhtml文档类型doctype总结

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33716154的博客 214

xhtml、html5常用头部head写法

xhtml <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" l...

aoliandao3497的博客 258
上一篇: Nodejs Express框架
下一篇: javascript数据结构和算法 零(前记+序言)
jjvein
博客等级 码龄14年 29粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值