从X-UA-Compatible到IE兼容

1. 网页乱码的问题是如何产生的?

  • 因为一份文档保存在计算机的时候不是以我们看到的样子,而是用计算机理解的样子去保存的,计算机只能理解010101这样的二进制代码。然而世界上有许多不同的语言,计算机的发展和使用也是逐步扩散的,所以就有就有许多不同的字符集和编码方式。
  • 例如ASCII字符集,就是美国标准信息交换代码,是早期的万维网在使用的,这个字符集中就只有128个字符,主要包括英文字母、数字和其他一些符号。但是这在欧洲人使用拉丁字符时就显然不够用,就有了ISO 8859-1,这是对ASCII的拉丁字符补充后产生的字符集。
  • 所以文档作者在保存文档的时候就必须制定一种编码方式,而使用者用解析器打开的时候如果打开文档所使用的编码方式不一致,打开的文档就会出现乱码。

参考:字符编码笔记:ASCII,Unicode和UTF-8

2. 颜色有几种写法, 红色、 绿色、蓝色、白色、黑色如何表示? 透明黑色如何表示?#ccc的颜色, #eee的颜色? #333的颜色?

颜色有几种写法:

颜色名 HEX RGB HSL
红色 #ff0000 rgb(255,0,0) hsl(0,100%,50%)
绿色 #00ff00 rgb(0,255,0) hsl(120,100%,50%)
蓝色 #0000ff rgb(0,0,255) hsl(240,100%,50%)
白色 #ffffff rgb(255,255,255) hsl(0,0%,100%)
黑色 #000000 rgb(0,0,0) hsl(0,0%,0%)

透明黑色如何表示:

在CSS3中,加入了Alpha透明通道,所以黑色透明就是rgba(0,0,0,0.5),其实最后一个alpha的值为0~1,0表示完全透明,1表示不透明。

#ccc的颜色, #eee的颜色? #333的颜色:

#ccc
#eee
#333

参考:CSS Color Value

3. 的的作用是什么

告诉浏览器要用HTML5的标准来解析文档,可以当成是document type declaration或者DTD,就是文件类型宣告

参考:DOCTYPE

4. 严格模式和混杂模式指什么

在很久以前,浏览器主要有两种,网景公司的Navgator和微软的Internet Explorer,当W3C标准创立的时候,为了不破坏已有的网站,浏览器不能马上启用新的标准。所以浏览器导入了能采用新标准的严格模式和向旧网站兼容的混杂模式的两种模式。

参考:Quirks Mode and Standards Mode

5. meta有什么作用,常见的值有哪些

meta有什么作用:

meta标签是用来表示那些不能被headscriptlinkstyletitle标签所表示的元数据。其中元数据表示的是,用来描述数据的数据(Data that describes other data)。例如,身高:175cm、体重:65kg、年龄:23,其中的身高、体重、年龄就是元数据。

常见的值有哪些:

  • name,是加在整个页面上的元数据,它的level是document-level
  • http-equiv,是一个编译指令,例如从服务器响应过来的信息该被怎样渲染
  • charset,规定使用哪种编码方式
  • content,定义一个和namehttp-equiv关联的值

参考:

  1. meta
  2. 元数据(MetaData)

6. 有什么作用

X-UA-Compatible is a document mode meta tag that allows web authors to choose what version of Internet Explorer the page should be rendered as. It is used by Internet Explorer 8 to specify whether a page should be rendered as IE 7 (compatibility view) or IE 8 (standards view).

这是一个针对IE浏览器的语句,在前面的问题说到过IE的严格模式和混杂模式,是用这条语句来触发的,在IE6前期是可以兼容很多旧的网站,但是随着越来越多的网站按照标准来使用这条指令,就会出现这样的情况:
例如,IE6不支持CSS的通配符选择器,那么在早期一些网站就利用这个特性,如果我检测到浏览器不支持* {},那么我就认为这是一个IE浏览器,那么我为了实现在IE浏览器的效果就针对IE6写一些特别的代码,提供一些特别的内容。但是当浏览器版本升级到IE7的时候,IE7已经实现了通配符选择器,那么我的检测就失效了,我就检测不到IE浏览器,那么我针对IE6写的代码就无效了,所以内容也就不能正常显示。由于网站是按照标准使用指令的,而且IE7只有IE7的标准模式和怪异模式而没有IE6的标准模式,所以怪异模式也无法实现兼容。
IE浏览器为了解决这种情况,保证旧文档的兼容性,就在IE8的时候加入了这条指令,例如,在IE8就可以选择是使用IE8的标准模式还是IE7的标准模式。其中IE=edge表示使用最新的标准模式,而chrome=1表示:
这是为谷歌的内嵌浏览器( Chrome Frame browser)添加的,Chrome Frame browser可以安装在不同的IE版本中,相当于在IE浏览器里安装一个chrome。而Chrome=1就表示如果Chrome Frame browser 存在,就使用Chrome Frame browser。

参考:

  1. 定义文档兼容性
  2. What is X-UA-Compatible when it references IE=edge,chrome=1?

7. 常见的浏览器有哪些,什么内核

Chrome Firefox Safari IE Opera
排版引擎 Blink Gecko Webkit Trident Blink
Javascript引擎 V8 SpiderMonkey Nitro Chakra V8

你可能感兴趣的:(从X-UA-Compatible到IE兼容)