DOCTYPE 探索 【已翻译100%】(2/2)

错误的“”怎样使HTML无效的?

定义一个错误的DOCTYPE会使Web页面无效。例如,当我们开发一个页面,如果某人将DOCTYPE定义为Strict,并且还是用了废弃的元素像是“font",那么这个元素会使得页面无效,或者我们使用了标签,而且没有为这个标签定义"Alt"属性,这同样会使页面无效,因为根据Strict DTD,"Alt"属性是标签的必选属性。

如何验证页面是否有效?

W3C 拥有一个让你可以根据定义的“”验证页面是否有效的站点.

http://validator.w3.org

此站点可以使用三种方式验证一个页面.

URL验证可以验证一个在线的页面。如果你的站点时公开可用的,那么直接提供站点里面的url就可以是页面得到验证.

文件上传验证可以验证上传的页面文件.

直接输入验证可以验证在站点提供的指定区域输入的一个页面的标记拷贝.

我们应该怎样决定定义的类型?

当定义“”时, 我们脑海中出现一个大问题关于我们应该怎样决定我们应该定义什么类型的DOCTYPE (DTD). 好吧,这很简单。

过渡期的DTD给了我们一个介于老样式HTML和标准4.01HTML之间的过渡点,因此无论什么时候我们有一个想要兼容最新浏览器的老的页面时,我们可以使用“Transitional”,然而如果我们在开发新的web页面,那么必须使用Strict。

如何同文档模式关联起来的(标准, 怪异 和大体标准模式) ,还有浏览器是如何决定是在标准模式,还是怪异模式下渲染一个网页的呢?

浏览器会计算出你不是真的使用了HTML 4.01,并回到怪异模式. 而后你回到让不同浏览器以不同方式处理页面的问题上来. 你可以预先估计结果的唯一方式就是告诉浏览器你使用的是 “HTML 4.01”并且实际上也遵循了标准. 由于web日益标准,再加上所有的浏览器都情愿只支持同一套标准,因此我们应该使用标准模式,它可以使用 来加以强制。

研究 DOCTYPE 时, 我恰巧朋友一个 OReilly’s Head First的书, 里面有一段浏览器和Head First的有趣访谈. 我在这里想在下面和大家分享这段相当有趣的访谈.

在本文中,我们了解了 和文档的模式,它们在让所有的浏览器对页面有一个一致的渲染方面非常重要. 建议我们总是指示页面使用标准文档模式并总是在页面中定义一个 来避免任何兼容性问题.

如果你能让我了解你对有关文章内容,展现和报道的意见和建议的,以帮助我提升我将来文章品质的话,我将不胜感谢.

祝学习愉快 …

引用

http://msdn.microsoft.com/library/cc288325(v=vs.85).aspx

http://msdn.microsoft.com/en-US/library/gg699340(v=vs.85).aspx

http://msdn.microsoft.com/en-US/library/gg699338(v=vs.85).aspx

时间: 2024-09-01 09:31:51

DOCTYPE 探索 【已翻译100%】(2/2)的相关文章

DOCTYPE 探索 【已翻译100%】(1/2)

介绍 最近在我学习HTML5的时候,心里想到的第一个问题就是浏览器怎么会知道,我们编写的HTML是否兼容HTML v4.1或者HTML v5呢. 为了找到对相同查询的回复,我开始了我的探索,这里我想分享对此的一些了解. 研究这个东西的时候,我了解到所有这些都是由一个叫做 <!DOCTYPE> 的标签来控制的,它是大多数网页的最开头的一个标签,真正令我感觉惊奇的事情,则是因为我看到每一个web页面不管何时被某个IDE添加,都会自动添加上这个标签,而我也从未关心过这个标签,也从未想过要去研究研究它

通过 Doctype 启用浏览器模式 【已翻译100%】(1/2)

为了即能解析那些满足Web标准的网页,又能解析那些过去20年来遗留下来的传统的网页,现代浏览器一般都实现了多种网页解析的模型.本文将介绍这些解析模型都是什么,以及它们是如何触发的. 内容概述 本文档的主要结论是,你应当在你HTML文档(所有以text/html类型处理的内容)的源代码顶部加上<!DOCTYPE html>.(详见下文) 如果你还想确保使用IE8/IE9/IE10的用户不做任何操作就可以让网页以IE7的形式显示,你可以在你的服务器上为所有text/html的响应添加HTTP头&q

通过 Doctype 启用浏览器模式 【已翻译100%】(2/2)

doctype嗅探(也叫doctype转换) 现代浏览器使用doctype嗅探来决定text/html文档的引擎模式.这意味着模式的选择是基于HTML文档开始的文档类型声明(或缺少).(这不适于使用XML文档类型的文档.) 文档类型声明(doctype)是SGML的语法伪造,SGML是个旧式的标记框架,HTML5之前的HTML就是依据其定义的.HTML4.01规范中,文档类型声明描述的是HTML的版本信息.尽管名字叫"文档类型声明"且HTML 4.01规范所描述的是关于"版本

从 C++ 到 Objective-C 的快速指南 【已翻译100%】

**简介 ** 当我开始为iOS写代码的时候,我意识到,作为一个C++开发者,我必须花费更多的时间来弄清楚Objective-C中怪异的东西.这就是一个帮助C++专家的快速指南,能够使他们快速的掌握Apple的iOS语言. 请注意这绝不是一个完整的指南,但是它让你避免了阅读100页的手册.除此之外,我知道你喜欢我的写作风格. 背景 需要C++的技能,我会比较C++和Objective-C的东西.此外,COM编程也是有用的,因为Objective-C有类似于IUnkown的东西,因此基础的COM编

为什么 Docker 在引领虚拟化和云计算的新浪潮 【已翻译100%】

又是一年的OSCON之际,今年的技术领域关注在人们热烈讨论的云基础建设.其中更有趣的是刚开始起步的Docker,这是一个超轻量化容器应用,充满潜力. 我对Docker的服务副总裁James Turnbull非常着迷,他将会在大会上带来一场Docker的速成班.除了探究Docker是什么之外,我们还将导论云,开源贡献和得到一份真正的工作. 您曾经出版过关于不同linux方面的著作.您开始是如何探索linux的呢?是什么让您对linux如此热衷呢? 我想我第一次接触linux是在Debian刚发布不

远程执行 Android 设备上的代码 【已翻译100%】(1/2)

"你走进一个咖啡店坐下来.等咖啡的时候,你拿出你的智能手机开始玩一款你前些天下载的游戏.接着,你继续工作并且在电梯里收邮件.在你不知情下,有攻击者获取了公司网络的地址并且不断地感染你所有同事的智能手机. 等下, 什么? 我们在Bromium实验室博客上不会谈论Android太多.但是不时地我们喜欢修修补补.近来,我的同事Thomas Coudray 和我探索了下Android远程代码执行的易损性,想弄明白易损性在现实应用中是多大的问题. 尽管权限提升技术在Android上很普遍(并形成了&quo

复制策略与复制的方式 【已翻译100%】(2/2)

服务器宕机意味着相关的日志变化部分会在尺度上增加,直到同伴节点再次运行起来,或者我们从复制目标中移除这个服务器条目. 到目前为止,这与你要组织 oplog 的方式非常相似.主要的不同是,组织需要记录的真实数据的方式.从 oplog 角度看,你准备向系统中写入发生的变化.并且,对之施行的唯一方式就是以它产生的相同顺序将其应用到 oplog 中.这会导致你只能一直拥有一个单主节点的系统.并且会引发在"大脑分裂"时数据丢失或需要手工合并的场景. 就多重可写组合而言,我们要保持足够的上下文(通

CentOS 6 到 CentOS 7 的升级过程【已翻译100%】

在红帽企业版7发布之后仅仅几周,centos7也发布了,并且包含了与红帽同样令人兴奋的功能.除了期待已久的systemd和当前热门的Docker,此次发布还使系统自动从版本6更新到版本7而不需要安装镜像文件成为可能.虽然升级还需要重启,因此不能算是一种live upgrade,但对于那些只能通过远程访问的服务器来说还是非常方便的. 红帽早已发布并且文档化了必要的更新工具.CentOS团队还来不及导入.测试和重新构建工具,但是开发人员早已经在做开始做了-而且他们提供了未测试的二进制文件. 请,注意

10 个迅速提升你 Git 水平的提示 【已翻译100%】

最近我们推出了两个教程:熟悉Git的基本功能和让你在开发团队中熟练的使用Git . 我们所讨论的命令足够一个开发者在Git使用方面游刃有余.在这篇文章中,我们试图探索怎样有效的管理你的时间和充分的使用Git提供的功能. 注:本文中,一些命令包含了方括号中的部分内容(例如:git add -p [file_name]).在这些示例中,你将插入必要的数字.标示符等等,如果没有方括号. Git自动补全 假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情.为了解决这个问题