用doctype激活浏览器模式(3)
作者:秦歌 来源:随网之舞 发布时间:2009-06-15 19:02:00
选择doctype
text/html
下面是创建新的text/html文档时如何选择doctype的简单指南:
标准模式,最前沿的验证
<!DOCTYPE html>
如果想验证诸如
<video>
、<canvas>
和ARIA这样的新特性,那么这样做是对的。注意,HTML5的有效定义依旧在变化中,请确保在Firefox、Safari、Chrome、Opera9或Opera10中测试图像对齐。在Internet Explorer中测试图像对齐是不足够的,无论如何请确保在IE8中也进行了测试。标准模式,更稳定的验证目标
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
这个doctype也会触发标准模式,且10岁大的HTML4.01有效定义是稳定的。请确保在Firefox、Safari、Chrome、 Opera9或Opera10中测试图像对齐。在Internet Explorer中测试图像对齐是不足够的,无论如何请确保在IE8中也进行了测试。
要使用标准模式,但仍要验证不推荐标记或在表格布局中使用切片图像且不想去修复它们。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
它会触发几乎标准模式(和老掉牙的Mozilla中的完全标准模式full Standards mode)。请注意,如果以后移植到HTML5上,基于利用表格实现的切片图像的布局可能会被破坏(且完整标准模式也如此)。
故意要使用怪癖模式
没有doctype。
请别这样做。故意为怪癖模式所做的设计将会困扰你,在将来你的同事或继任者甚至没有人关心Windows IE6(Netscape4.x和IE5已经没有人关心了)。为怪癖模式设计是个坏主意。相信我。
如果你想依旧支持Windows IE6,对它做一个特别的hack使用条件注释比使其他浏览器退步到怪癖模式好。
我不推荐任何的XHTML doctype,因为XHTML被用作text/html被认为是有害的。无论如何,如果你选择使用XHTML doctype,请注意XML声明会使IE6(但不是IE7!)触发怪癖模式。
application/xhtml+xml
对application/xhtml+xml的简单指南是绝不使用doctype。该方式下的网页不是“严格一致”的XHMTL1.0,但这并不重要。(请看后面的附录)
IE8 并发症
A List Apart 曾介绍 ,IE8除doctype外会使用基于meta元素的模式转换作为模式选择的因素之一。(请看Ian Hickson、David Baron、David Baron again、Robert O’Callahan 和 Maciej Stachowiak的评论。)
IE8有4种模式:IE5.5怪癖模式、IE7标准模式、IE8 几乎标准模式 和IE8标准模式。模式的选择取决于来自几个方面的数据:doctype、meta元素、HTTP头、来自微软的定期下载数据、局域网域、用户所做设置、局域网管理员所做设置、父框架的模式(如果有)和地址栏兼容视图按钮被用户触发。(对于嵌入该引擎的其他应用,模式也取决于嵌入的应用。)
幸运的是如果出现下列情况,IE8大体上会像其他浏览器一样使用doctype嗅探:
作者没有设置X-UA-Compatible HTTP头
作者没有设置X-UA-Compatible meta标签
微软没有在黑名单中放置该站点的域名
局域网管理员没有把该站点放置到黑名单上
用户没有按下兼容视图按钮(Compatibility View button) (或以其他方式添加到某个特定的用户黑名单中)
该站点不在局域网域中
用户没有选择在IE7中显示所有站点
页面没有通过frame嵌入到兼容模式的页面中
上述除两个关于X-UA-Compatible的情况外,IE8像IE7一样执行doctype嗅探。IE7仿真( IE7 emulation)叫兼容视图。
在 X-UA-Compatible 情况下,IE8的行为和其他浏览器完全不同。想看本页的附录或PDF和PNG格式的流程图。
不幸的是,没有 X-UA-Compatible的HTTP头或meta标签,即使使用了合适的doctype,IE8让用户无意间使页面从IE8的标准模式降到IE7模式,这是一种仿真的IE7标准模式。更糟糕的是,局域网管理员也可以这么做。微软也可以把你所用的所有域名到列入黑名单。
为了对付这些影响,doctype是不够的,你需要X-UA-Compatible HTTP头和meta标签。
下面的简单指南是针对已经有doctype在其他浏览器触发标准模式或者几乎标准模式的新的text/html文档如何选择X-UA-Compatible HTTP头或meta标签的:
你的域名没有在微软的黑名单上,你更关注是没有浏览器专属的令人讨厌的东西而不是确保用户无法回退去呈现IE7的行为。
你不需要包括X-UA-Compatible HTTP头或meta标签。
你的域名在微软的黑名单中,由于你域名中的其他作者破坏了站点或许导致用户对整个域启用了兼容视图,你担心Google或Digg用frame嵌入你的站点或你想确保用户无法使用兼容视图
首先,在你的页面包含后面的meta元素(它在HTML5中是非法的)
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
(在任何脚本元素前),或者设置后面的HTTP头:X-UA-Compatible: IE=Edge你的站点在IE7中工作但在IE8中破坏
首先,在你的页面包含后面的meta元素(它在HTML5中是非法的)
(在任何脚本元素前),或者设置后面的HTTP头: X-UA-Compatible: IE=EmulateIE7,然后修复你的站点不依赖非标准的IE7行为和迁移到IE=Edge。


猜你喜欢
- 目录需求说明Do it需求说明如图,我想要实现当点击字母L,页面定位到L开头的城市名Do it1.找到字母表的页面在html标签绑定一个cl
- 技术背景GPU的加速技术在深度学习、量子计算领域都已经被广泛的应用。其适用的计算模型是小内存的密集型计算场景,如果计算的模型内存较大,则需要
- 在移动社交时代,微信已经成为我们生活不可或缺的一部分。2017年的《微信数据报告》中显示:每天有380亿条消息从微信上发出,其中6亿条是语音
- 昨天面试上来就是一个算法,平时基本的算法还行,结果变个法就不会了。。。感觉应该刷一波Leecode冷静下。。。今天抽空看下。题目就是要求O(
- 一、并发访问控制实现的并发访问的控制技术是基于锁;锁分为表级锁和行级锁,MyISAM存储引擎不支持行级锁;InnoDB支持表级锁和行级锁;锁
- 一,分析代码运行时间第1式,测算代码运行时间平凡方法快捷方法(jupyter环境)第2式,测算代码多次运行平均时间平凡方法快捷方法(jupy
- 本文研究的主要是pyqt5自定义信号实例解析的相关内容,具体介绍如下。PyQt5已经自动定义了很多QT内建的信号。但是在实际的使用中为了灵活
- 引言作为一个web前端开发,对axios肯定不陌生,但是在前端开发中,一般是使用axios来请求后端接口,获取数据。而使用node+axio
- 找到给定二叉树的最小深度最小深度是从根节点到最近叶子节点的最短路径上的节点数量注意:叶子节点没有子树Example:Given binary
- 更加颗粒级的缓存框架使用方法是对单个视图的输出进行缓存。 django.views.decorators.cache定义了一个自动缓存视图响
- Oracle数据库在使用的过程中常常会遇到这样或那样的问题,而这些问题常常又使我们感到很困惑,本文我们总结了Oracle数据库在使用过程中的
- 前言innodb_data_file_path用来指定innodb tablespace文件,如果我们不在My.cnf文件中指定innodb
- 在pytorch训练过程中可以通过下面这一句代码来打印当前学习率print(net.optimizer.state_dict()['
- 当成功安装了PHP,MYSQL后,我们一般要安装phpMyAdmin来管理你的mysql。本文介绍了phpMyAdmin 2.10.2的配置
- os.stat(path) :用于在给定的路径上执行一个系统 stat 的调用。path:指定路径返回值:st_mode: inode 保护
- 自今年1月份以Jetbrain公司严厉打击旗下开发工具产品(如:IntelliJ IDEA、WebStorm、PyCharm等)的盗版破解以
- 默认情况下,PyCharm中如果有无法错误或者不符合PEP8规范代码下面会有波浪线,语法错误波浪线为红色(如下图的第10行),不符合PEP8
- 本文实例讲述了Python爬虫实现简单的爬取有道翻译功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!p
- 现在vue.js几乎是程序员必会的前端框架啦~今天就学习记录一下怎么运行一个vue项目无论是Idea还是webstorm,都是一样的操作。去
- 我的同事Fara给大家介绍了戴尔网站首页的改版设计,这里我还想和大家介绍一下戴尔是如何从网站用户使用体验的角度进行设计,让大家进一步了解戴尔