如何用doctype激活浏览器?

为了处理根据Web标准创作的网页和根据盛行于20世纪90年代末的旧时实践创作的网页,当代的Web浏览器实现了各种不同的引擎模式。本文说明了那些模式是什么以及如何触发它们。

原文:Henri Sivonen的Activating Browser Modes with Doctype

文档范围

本文包括的模式转换(mode switching)适用于Firefox和其他基于Gecko的浏览器,Safari、Chrome和其他基于Webkit的浏览器,Opera、 Konqueror、Mac版Internet Explorer、Windows版Internet Explorer和内嵌IE的浏览器。避免提及浏览器引擎的名字,取而代之的是使用该引擎最知名浏览器的名字。

本文着重介绍模式的选择机制,而不是记录每个模式的确切行为。

模式

以下是各种不同的模式:

内容类型为text/html的模式

text/html内容的模式选择取决于doctype嗅探(doctype sniffing,本文后面有讨论)。在IE8中,模式也取决于其他因素。然而在IE8的默认情况下,那些不在微软提供黑名单上的非局域网(non- intranet)站点的模式取决于文档类型。

再怎么强调每个浏览器中模式精确行为的不同也是不过分的,即使本文中进行了统一的讨论。

怪癖模式(Quirks Mode)
怪癖模式中,为了避免“破坏”那些根据盛行于20世纪90年代末的旧时实践创作的页面,浏览器违背了当代的Web格式规范。不同的浏览器实现了不同的怪癖行为。Internet Explorer6、7和8中,怪癖模式有效地冻结在IE5.5 。其他浏览器中,怪癖模式是对几乎标准模式的少量偏移。
如果正在创作新网页,你应该符合相关的规范(特别是CSS2.1)且使用标准模式。
标准模式(Standards Mode)
标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度。
不同的浏览器遵循不同的阶段,所以标准模式也不是一个单一目标。
HTML5把这种模式叫“非怪癖模式(no quirks mode)”
几乎标准模式(Almost Standards Mode)
irefox、Safari、Chrome、Opera(从7.5开始)和IE8也有个叫“几乎标准模式”的模式,它按照传统的做法来实现表格单元格的垂直尺寸而不是严格的遵照CSS2规范。Mac IE5、Windows IE6和7、Opera7.5以前版本和Konqueror无需几乎标准模式,因为它们至少没有在各自的标准模式下严格遵循CSS2规范来实现表格单元格垂直尺寸。实际上,它们的标准模式更接近Mozilla的几乎标准模式而不是Mozilla的标准模式。
HTML5把这种模式叫着“受限怪癖模式(limited quirks mode)”。
IE7模式
IE8有个模式主要是冻结了IE7标准模式的副本。其他浏览器没有像这样的模式,且该模式也未被HTML5指定。

内容类型为application/xhtml+xml的模式(XML模式)

Firefox、Safari、Chrome和Opera中,application/xhtml+xml HTTP内容类型(不是meta元素也不是doctype!)会触发XML模式。在XML模式中,浏览器尝试给XML文档在规范上的正确处理达到在制定浏览器中的程度。

E6、7和8不支持application/xhtml+xml,Mac IE5也如此。

基于WebKit的Nokia S60 浏览器中,application/xhtml+xml HTTP内容类型不能触发XML模式,因为在移动的围墙花园(mobile walled gardens)中关注点是对不规范内容的兼容性。(旧式的“移动浏览器”无法使用真正的XML解析器,因为不规范内容已被标记为XML。)

由于没有充分地测试Konqueror,我无法确切说出在这个浏览器中会发生什么。

时间: 2024-10-27 17:02:45

如何用doctype激活浏览器?的相关文章

VB.NET中如何用代码激活CapsLock等键

问题描述 VB.NET中如何用代码激活CapsLock等键我知道获得键的状态代码为MsgBox(My.Computer.Keyboard.CapsLock)这是GET请问如何修改设置set呢?谢谢了 解决方案 解决方案二:试试:SendKeys.Send("{CapsLock}").不过,效果可能只有一次,还是一直有效,你自己试试.解决方案三:引用楼主webcivics的回复: VB.NET中如何用代码激活CapsLock等键我知道获得键的状态代码为MsgBox(My.Computer

如何用JS清空浏览器的缓存

问题描述 如题,如何用JS清空浏览器的缓存.项目中希望JS文件.css文件每次访问时都去服务器取最新的,而不是缓存.知道大部分的方式是用在url上加随机参数的方法,但是由于项目中使用了ASPmvc的Bundle,它对js,css文件进行了打包,如果在URL中传了"xxxx?随机参数",便无法加载该js或css文件了,请问各位有什么方法吗? 解决方案

android隐式意图激活浏览器的实现方法

在有些时候,我们可能想打开某个不确定的应用,比如,我们想要通过浏览器打开百度的站点,但是我们并不强调必须要使用哪一个浏览器,那么这种情况我们使用显示意图可能不太好,更好的做法是使用隐式意图打开网站. 效果: 点击按钮后: 附代码: package com.yy.activity; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle;

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

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

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

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

如何用!important解决浏览器兼容性问题

"!important"是什么? 第一个,是设置样式的优先级,设了!important的样式的属性优先于id选择器和class选择器.,比如id为"Main"的div在它的Class设背景色为红色,,id选择器下又设了背景色为蓝色,照css的"就近原则",它的背景色应该是红色了,因为id选择器的优先级高于class选择器,但是,一旦class里设了"!important",哈哈,id,一边去吧..我背景颜色要优先显示class

如何用傲游云浏览器下载新浪视频

  首先打开傲游云浏览器,并且进入新浪视频,打开想下载视频文件的页面 在浏览器后面有个下拉的小箭头,里面可以选"资源嗅探器" 选中后弹出一个窗口 等待嗅探器找到你想下载的视频的下载地址,选中,并且选择下载选中的文件 设定好下载路径后下载下来就可以本地观看了!

教你如何用猎豹安全浏览器截图

  一.点击猎豹安全浏览器右上角[更多功能]按钮,选择"显示/隐藏图标" 二.下拉选择[截图],点击"安装"安装截图功能 三.点击猎豹安全浏览器右上角[截图]按钮即可截图 四.根据不同的需求,可以选择[区域性截图/隐藏浏览器截图/保存当前整个网页] 五.截图完成后,我们可以在截图的基础上进行图形/文字标注,同时还支持分享到新浪微博哟~ QQ截图20140714104022.png (537.71 KB, 下载次数: 0) 下载附件 保存到相册 2014-7-14 1

前端翻译:Activating Browser Modes with Doctype

一.前言   原本备份: http://www.cnblogs.com/fsjohnhuang/p/3830623.html   由于本人英语能力有限,译本内容难免有误,望各位指正!   本译文不含附录部分,请知悉.   二.译文内容 为了让用户正常访问遵循Web标准的网站和90年代后期的非标准网站,当前的浏览器都内置了多种引擎模式.本文将解释这些模式和它们触发的原理.      本文概要(没耐性的同学看完这个就可以闪了!)     本文结论:以<!DOCTYPE html>作为你们的HTML