html 文档模式。

今天, 做的一道面试的笔试题。 不知道由于什么原因,

硬生生的把 题目 曲解 成 CSS 标准模式 和 混杂模式 .

混杂模式和严格模式(一般称为标准模式:Standards Mode,下文中的严格模式都可以理解为标准模式)是浏览器解析CSS时的两种‘模式’。这篇文章将简单阐述这两种模式之间的差异。

一个网页由2部分组成。 html 和 css 

html ,负责网页展示框架的搭建. 而CSS 负责 网页的表现及外观(如,字体,颜色,大小..)

-----------------------------------------------------------------------------------------

问题产生的原因

当Netscape4(译注:网景公司早期的浏览器)和IE4(微软公司早期的浏览器)实现CSS机制时,并没有遵循W3C提出的标准。Netscape4 提供了糟糕的支持,而IE4 虽然接近标准,但依旧未能完全正确的支持标准。尽管IE 5 修复了IE4 许多的问题(bugs),但是依然延续CSS实现中的其它故障(主要是盒模型(box model)问题)。 
为了保证自己的网站在不同的浏览器中都能正确展现,网页开发者不得不依据各个浏览器的自身的规范来使用CSS。因此大部分网站的CSS实现并未符合W3C的标准。
然而随着标准一致性变得越来越重要,浏览器开发商不得不面临一个艰难的抉择:逐渐遵循W3C的标准是前进的方向。但是改变现有CSS的实现,完整去遵循标准,会使许多网站或多或少受到破坏。如果浏览器突然以正确的方式解析现存的CSS,陈旧的网站显示必然受到影响。
因此立即遵循标准会产生问题,然而忽略标准则又会维持浏览器大战时(译注:微软和网景之间的一段竞争)所产生的混乱。

解决方案:

任何解决方案必须服从以下2个原则。

1. 允许开发者可以选择他们所熟知的模式。

2.依然使用旧式规则显示陈旧网站.

选择哪一种模式,需要一个触发器。而 ‘doctype’ 则正是用于此目的。

----------------------------------------------------------------------------------------------------------

回到面试题.

知道了,doctype  的来由现在来看下。如何触发 兼容模式 

1. html 文档开头 不声明 doctype  . 则IE 默认开启 兼容模式来渲染 页面。

2.IE6 下 声明 xml ,在声明doctype 之前

3.在xml 声明 和doctype 声明 中间加入 html 注释 可在ie7下触发 <?xml version="1.0" encoding="utf-8"?>
<!-- keep IE7 in quirks mode -->
<!DOCTYPE ...>

4.在 doctype  之前加入·
<!--->
<!doctype ....>

标准模式的触发

1.文档开头 加入doctype 声明。

2.设置X-UA-Compatible触发。

如何 检查当前的文档模式 

 javascript 提供一只读属性返回当前所处模式。

mode = document.compatMode

mode is the string "BackCompat" for Quirks mode or "CSS1Compat" for Strict mode.

mode  的值为BackCompat 时,则显示为 兼容模式 . 若值为CSS1Compat 时,则为 标准模式





你可能感兴趣的:(html 文档模式。)