精华内容
下载资源
问答
  • 严格模式与混杂模式

    千次阅读 2017-08-05 21:36:59
    如何区分严格模式与混杂模式,它们有何意义!严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。区分方法: 如果文档包含严格的 ...

    如何区分严格模式与混杂模式,它们有何意义!

    严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。

    混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。

    区分方法
    如果文档包含严格的 DOCTYPE ,那么它一般以严格模式呈现。

    包含过渡 DTD 和 URI 的 DOCTYPE ,也以严格模式呈现,但有过渡 DTD 而没有 URI (统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现。

    DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现。

    HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。


    严格模式与混杂模式的前世今生

    当年Netscape4(网景公司早期的浏览器)和IE4(微软公司早期的浏览器)实现CSS机制时,并没有遵循W3C提出的标准。Netscape4 提供了糟糕的支持,而IE4 虽然接近标准,但依旧未能完全正确的支持标准。尽管IE 5 修复了IE4 许多的问题,但是依然延续CSS实现中的其它故障(主要是盒模型问题)。

    为了保障自己的网站在各个浏览器上显示正确,网页开发者们不得不依据各个浏览器自身的规范来使用css,因此大部分网站的css实现并不符合W3C规范的标准。

    然而随着标准一致性越来越重要,浏览器开发商不得不面临一个艰难的抉择:逐渐遵循W3C的标准是前进的方向。但是改变现有的 css,完全去遵循标准,会使许多旧网站或多或少受到破坏,如果浏览器突然以正确的方式解析现存的css,陈旧的网站的显示必然会受到影响。所以,所有的浏览器都需要提供两种模式:混杂模式服务于旧式规则,而严格模式服务于标准规则。

    展开全文
  • 面试题之严格模式与混杂模式 在我刷面试题的时候遇到了这个问题,与此,我查了很多资料,决定写下来比较好记,便于自己后期复习,需要的朋友可以自行借鉴。 严格模式:又称为标准模式 除了正常运行模式,ECMAscript ...

    面试题之严格模式与混杂模式

    在我刷面试题的时候遇到了这个问题,与此,我查了很多资料,决定写下来比较好记,便于自己后期复习,需要的朋友可以自行借鉴。

    严格模式:又称为标准模式

    除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思议,这种格式使得javascript在更严格的条件下运行的。
    目的主要有:

    1. 消除javascript在语法方面的一些不合理,不严谨之处,减少一些误差。
    2. 消除代码运行的一些不安全之处,保证代码运行的安全
    3. 提高代码运行的效率,增加运行速度
    4. 为以后做好准备

    它更体现了JavaScript更合理,更安全,更严谨的发展反向。

    另一方面,同样的代码,在“严格模式”中,
    可能不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。

    进入严格模式标志

    use strict
    
    • 老版本的浏览器会把它当作一行普通字符串,加以忽略。
    • 请看下面代码
    <!DOCTYPE html>
    <html>
    
    <head>
        <title></title>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    </head>
    
    <body>
        <script>
    	    "use strict";    
    	    function a() {    
    	        console.log(this); //undefined 严格模式
    	    }
    	    f1()
        </script>
        <script>
    	    function b() {    
    	        console.log(this); //window  
    	    }
    	    f2()
        </script>
    </body>
    
    </html>
    

    上面的代码表示,一个网页中依次有两段Javascript代码。前一个script标签是严格模式,后一个不是。

    混杂模式又称为兼容模式

    是指浏览器用自己的方式解析代码,模拟老式浏览器的行为以防止网站停止工作

    我查了一下有网友说是这样的

    • 混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。具体的地址转发则是在接受到数据后由MAC层来进行。

      Doctype的作用

    • .<!DOCTYPE>声名位于文档的最前面,在 标签的前面,告知浏览器以何种模式来渲染文档。

    • DOCTYPE标签是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档。

      怎样选择DOCTYPE

    • 理想情况 当然是 严格的DTD,但对于我们大多数刚接触 web标准的设计师来说,过渡的DTD是目前理想选择。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过 W3C的代码校验。

    注:上面说的"表现层的标识、属性"是指那些纯粹用来控制表现的tag,例如用于排版的表格、背景颜色标识等。在XHTML中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。

    • 打个比方:人体模特换衣服。模特就好比数据,衣服则是表现形式,模特和衣服是分离的,这样你就可以随意换衣服。而原来HTML4中,数据和表现是混杂在一起的,要一次性换个表现形式非常困难。呵呵,有点抽象了,这个概念需要我们在应用过程中逐步领会。

    补充:

    • DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。

    好了今天的分享就到此结束

    再见

    展开全文
  • 2. 严格模式与混杂模式严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。混杂模式:又称怪异模式,是指浏览器用自己的方式解析代码。如何区分:浏览器解析时到底使用严格模式还是混杂模式

    一、Doctype

    声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。声明必须在 HTML 文档的第一行,但这并不是一个 HTML 标签。

    二、严格模式与混杂模式

    严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。

    混杂模式:又称怪异模式,是指浏览器用自己的方式解析代码。

    如何区分:浏览器解析时到底使用严格模式还是混杂模式,与网页中的 DTD 直接相关。

    1、如果文档包含严格的 DOCTYPE ,那么它一般以严格模式呈现。(严格 DTD ——严格模式)
    2、包含过渡 DTD 和 URI 的 DOCTYPE ,也以严格模式呈现,但有过渡 DTD 而没有 URI (统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现。(有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式)
    3、DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现。(DTD不存在或者格式不正确——混杂模式)
    4、HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。( HTML5 没有严格和混杂之分)

    意义:严格模式与混杂模式存在的意义与其来源密切相关,如果说只存在严格模式,那么许多旧网站必然受到影响,如果只存在混杂模式,那么会回到当时浏览器大战时的混乱,每个浏览器都有自己的解析模式。

    三、具体DTD声明

    1、HTML5(一种):<!DOCTYPE html>

    2、HTML 4.01(三种):严格模式包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font),不允许框架集(Framesets);过渡模式包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font),不允许框架集(Framesets);框架模式等同于过渡模式,但允许框架集内容。

    HTML 4.01 Strict :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

    HTML 4.01 Transitional :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    HTML 4.01 Frameset :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

    3、XHTML 1.0(四种):前三种模式同上,XHML 必须以格式正确的 XML 来编写标记。

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

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

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

    XHTML 1.1 该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    四、严格模式与混杂模式的来源

    当年Netscape4(网景公司早期的浏览器)和IE4(微软公司早期的浏览器)实现CSS机制时,并没有遵循W3C提出的标准。Netscape4提供了糟糕的支持,而IE4虽然接近标准,但依旧未能完全正确的支持标准。尽管IE5修复了IE4许多的问题,但是依然延续CSS实现中的其它故障(主要是盒模型问题)。

    为了保障自己的网站在各个浏览器上显示正确,网页开发者们不得不依据各个浏览器自身的规范来使用CSS,因此大部分网站的CSS实现并不符合W3C规范的标准。

    然而随着标准一致性越来越重要,浏览器开发商不得不面临一个艰难的抉择:逐渐遵循W3C的标准是前进的方向。但是改变现有的CSS,完全去遵循标准,会使许多旧网站或多或少受到破坏,如果浏览器突然以正确的方式解析现存的CSS,陈旧的网站的显示必然会受到影响。所以,所有的浏览器都需要提供两种模式:混杂模式服务于旧式规则,而严格模式服务于标准规则。

    展开全文
  • 严格模式与混杂模式如何区分?它们有何意义?Doctype文档类型?一、Doctype作用?二、严格模式与混杂模式如何区分?三、它们有何意义?四、Doctype文档类型?总结 一、Doctype作用? 声明位于文档中的最前面,处于 标签...

    Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?Doctype文档类型?

    一、Doctype作用?

    声明位于文档中的最前面,处于 标签之前。告知浏览器以何种模式来渲染文档。

    二、严格模式与混杂模式如何区分?

    浏览器解析时到底使用严格模式还是混杂模式,与网页中的 DTD 直接相关。

    1、如果文档包含严格的 DOCTYPE ,那么它一般以严格模式呈现。(严格 DTD ——严格模式)

    2、包含过渡 DTD 和 URI 的 DOCTYPE ,也以严格模式呈现,但有过渡 DTD 而没有 URI (统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现。(有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式)

    3、DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现。(DTD不存在或者格式不正确——混杂模式)

    4、HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。( HTML5 没有严格和混杂之分)

    严格模式的排版和 JS 运作模式是,以该浏览器支持的最高标准运行。

    在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。

    三、它们有何意义?

    DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。严格模式与混杂模式存在的意义与其来源密切相关,如果说只存在严格模式,那么许多旧网站必然受到影响,如果只存在混杂模式,那么会回到当时浏览器大战时的混乱,每个浏览器都有自己的解析模式。

    四、Doctype文档类型?

    标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。

    HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

    XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

    Standards (标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,

    Quirks(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。

    总结

    good night
    展开全文
  • 严格模式与混杂模式如何区分? 严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。 混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。 如何区分:浏览器解析时到底使用严格模式还是...
  • 严格模式与混杂模式如何区分? 严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。 混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。 如何区分:浏览器解析时到底使用严格模式还是...
  • 严格模式与混杂模式如何区分?它们有何意义? a.作用:告知浏览器的解析器,用什么文档类型 规范来解析这个文档。 b. 严格模式:严格模式的排版和JS 运作模式是以该浏览器支持的最高标准运行。 c. 混杂模式:在混杂...
  • 严格模式严格模式的排版和 JS 运作模式是 以浏览器支持的最高标准运行混杂模式混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作...
  • 严格模式与混杂模式如何区分?它们有何 意义? Doctype作用 (1)位于文档最前面,处于标签之前。告诉浏览器用什么文档类型和规范(HTML或XHTML)来解析文档 阅读程序 规则集? | -----| -> 解释 文档中的标记 | ...
  • &lt;...在标准模式中,严格模式的排版和 JS 运作模式是以该浏览器支持的最高标准运行;在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器(IE5)的行为以防止站点无法工作。 DOCT...
  • 一、Doctype作用是什么...二、严格模式与混杂模式如何区分?它们有何意义? 严格模式: 又称标准模式,是指浏览器按照 W3C 标准解析代码。 混杂模式: 又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。 如...
  • 一、Doctype作用 ...二、严格模式与混杂模式 严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。 混杂模式:又称怪异模式,是指浏览器用自己的方式解析代码。 如何区分:浏览器
  • 严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。 在标准模式中,浏览器根据规范呈现页面; 在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。 浏览器根据DOCTYPE是否存在以及使用的...
  • 严格模式与混杂模式如何区分?它们有何意义? 以及如何触发这2种模式? a. 声明位于文档中的最前面,处于标签之前。告知浏览器以何种模式来渲染文档 b. 严格模式的排版和 JS 运作模式是,以该浏览器支持的最高标准...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 453
精华内容 181
关键字:

严格模式与混杂模式