浏览器css解析的两种模式

各浏览器解析css有两种模式:quirks mode怪异模式,strict mode标准模式

  1. 产生原因:历史原因,早期浏览器解析并未遵循w3c标准——quirks模式,随着w3c的标准越来越重要,仿照w3c标准解析css的模式——strict mode标准模式;其实还有一种 almost strict mode,例如almost strict mode中,img是块元素。大多数doctype触发的都是almost strict mode
  2. 区别:
    • 遵循的标准不同,对css的解释不同
    • 体现在对盒模式的解释上:strict mode 采用content-box方法计算元素的宽高(标准盒模型);quirks mode 采用border-box方法计算(ie6盒模型)
    • 看其他资料:strict mode 中 table字体大小会继承父元素的,quirks中不会。
  3. 浏览器如果判断用哪种方式解析:看doctype声明
    • 没有doctype声明,采用quircks mode
    • 有doctype声明的,详情见末尾插入的表
      •  浏览器不能识别doctype,用strict mode
      •  使用html4以下(不含html4),使用quirks  mode
      •  大部分有doctype声明的,都使用strick mode
      •  ie6中,doctype声明前有一个xml声明<!xml version="1.0" encoding="iso-88590-1"?>,采用quirks mode
  4. js中判断哪种模式:用document.compatMode

    • BackCompat:quirks mode
    • CSS1Compat:strict mode        
时间: 2024-10-12 14:42:02

浏览器css解析的两种模式的相关文章

JavaScript判断各浏览器CSS前缀的两种方式

不管浏览器更新的多快,号称多么支持标准.厂商不同,他们之间还是有很多差异.我们需要区分出这些差异,针对不同的浏览器做不同的处理. 比如 CSS 前缀,IE 的是 "-ms-",旧版 Opera 的是 "-o-",Firefox 的是 "-moz-",Safari/Chrome 是 "-webkit-".JavaScript 有多种方式判断它们. 方式1: 特性判断 // 取浏览器的 CSS 前缀 var prefix = fu

浏览器的两种模式quirks mode 和strict mode

关键字: javascript.quirks mode.strict mode 在看js代码时,有时会看到关于quirks mode(怪异模式)和strict mode(严格格式)的东西,一直也没深究怎么回事,只是零零碎碎的有些概念,最近终于受不了这种似懂非懂的感觉,决定好好学习总结一下. 1.quirks mode和strict mode是浏览器解析css的两种模式,或者可以称之为解析方法.目前正在使用的浏览器这两种模式都支持 . 2.历史原因. 当早期的浏览器Netscape 4和Explo

Doctype 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

Doctype:(Document Type)文档类型,它位于文档中最前面的位置,处于标签之前.如果你想制作符合标准的页面,一个必不可少的关键组成部分就是DOCTYPE的声明.确定了正确的Doctype,xhtml里面的标识和css才能正常生效(也就是说它会很负责地告诉浏览器怎么解释你的这个标签和你写的css).既然它是一种声明,它的责任就是告诉浏览器文档使用哪种html或者xhtml规范.为了获取正确的Doctype声明,关键就是让dtd与文档所遵循的标准对应.例如:假定文档遵循的是xhtml

Doctype文档声明的严格模式和混杂模式,如何触发这两种模式,区分它们有何意义?

(1)如何触发两种模式:加入xml头部声明,可以触发IE浏览器的Quirks mode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此.          (2)IE6的触发:在XHTML的DOCTYPE前加入XML声明,<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD X

如何理解DocType? 什么是严格模式与混杂模式?如何触发这两种模式?

1.Doctype声明位于文档中的最前面的位置,处于标签之前,此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范,该标签可声明三种DTD 类型,分别表示严格版本.过渡版本以及基于框架的 HTML 文档.2.当浏览器厂商开始创建与标准兼容的浏览器时,为了确保向后兼容性,他们把浏览器的工作模式(渲染模式)分为标准模式和混杂模式.在标准模式中,浏览器根据规范呈现页面:在混杂模式中,页面以一种比较宽松的向后兼容的方式显示,混杂模式通常模拟老式浏览器的行为以防止老站点无法工作.3.如何触发这两

ThinkPHP教程_PHP框架之ThinkPHP(二)【URL路径访问与模块控制器、URL四种模式、PATHINFO的两种模式、模板与控制器之间的关系】

一.URL路径访问与模块控制器 URL 模块(控制器) 动作(方法) 即以上三者之间的关系URL:http://127.0.0.1/projectName/index.php/模块/动作 1.ThinkPHP规定,两点 ·第一.所有的主入口文件默认访问index控制器(模块) ·第二.所有的控制器默认执行index方法(动作) 特别强调一下,以上两点是独立的!也就是说"所有的主入口文件默认访问index控制器,并执行默认执行index方法"是不准确的 那么,http://127.0.0

安卓手机应用开发培训讲义笔记和心得(Java和Mono两种模式)

培训内容    —————————————————————————————————————————————————————————————————— 昨天夏主要讲了两个方面的安卓手机开发 一:Java语言开发手机安卓 ① 准备发软件工具  环境   (可以直接本地搭建环境) 开发IDE:Eclipse(仅次于VS的强大IDE) 其它一大堆的东西:Android SDK  模拟器   SDK JDK DAT ②  window下搭建Eclipse+andro开发环境 安装步骤:一般首先安装ava运

CentOS7上squid的部署及两种模式(4.1版本)

CentOS7上squid的部署及两种模式(4.1版本) 简介 squid是什么? Squid是一种用来缓冲Internet数据的软件.它接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面.Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求.然后,Squid显式地聚集数据到客户端机器,而且同时复制一份.当下一次有人需要同一页面时,Squid可以简单地

vue路由的两种模式配置以及history模式下面后端如何配置

vue路由的两种模式配置以及history模式下面后端如何配置 1.hash ——即地址栏URL中的#符号.hash 虽然出现URL中,但不会被包含在HTTP请求中,对后端完全没有影响,因此改变hash不会重新加载页面.2.history ——利用了HTML5 History Interface 中新增的pushState() 和replaceState() 方法.需要特定浏览器支持history模式,会出现404 的情况,需要后台配置.3.hash模式下,仅hash符号之前的内容会被包含在请求