在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题
百度源代码如下 - <!Doctype html>
- <html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.com/2010/xbdml>;
- <head>
- <meta http-equiv=Content-Type content=“text/html;charset=utf-8″>
- <meta http-equiv=X-UA-Compatible content=IE=EmulateIE7>
- <title>百度一下,你就知道 </title>
- <script>var wpo={start:new Date*1,pid:109,page:‘superpage’}</script>
- <meta http-equiv=X-UA-Compatible content=IE=EmulateIE7>
复制代码
可以打开百度,右键查看源码看下!我们可以看下文件头是否存在这样一行代码! 这句话的意思是强制使用IE7模式来解析网页代码! 在这里送上几种IE使用模式! - <meta http-equiv=“X-UA-Compatible” content=“IE=8″>
复制代码
2. Google Chrome Frame也可以让IE用上Chrome的引擎:
- <meta http-equiv=“X-UA-Compatible” content=“chrome=1″ />
复制代码
3.强制IE8使用IE7模式来解析
- <meta http-equiv=“X-UA-Compatible” content=“IE=EmulateIE7″><!– IE7 mode –>
复制代码
//或者
- <meta http-equiv=“X-UA-Compatible” content=“IE=7″><!– IE7 mode –>
复制代码
4.强制IE8使用IE6或IE5模式来解析
- <meta http-equiv=“X-UA-Compatible” content=“IE=6″><!– IE6 mode –>
- <meta http-equiv=“X-UA-Compatible” content=“IE=5″><!– IE5 mode –>
复制代码
5.如果一个特定版本的IE支持所要求的兼容性模式多于一种,如: - <meta http-equiv=“X-UA-Compatible” content=“IE=5; IE=8″ />
复制代码
二.设定网站服务器以指定预设兼容性模式
如果服务器是自己的话,可以在服务器上定义一个自订标头来为它们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。 录入,下列的 web.config文件使Microsoft Internet Information Services (IIS)能定义一个自订标头以自动使用IE7 mode来编译所有网页。 另外还有一起其他的解决方案,例如google的 ie7 – js中是一个JavaScript库(解决IE与W3C标准的冲突的JS库),使微软的Internet Explorer的行为像一个Web标准兼容的浏览器,支持更多的W3C标准,支持CSS2、CSS3选择器。它修复了许多的HTML和CSS问题,并使 得透明PNG在IE5、IE6下正确显示。 使IE5,IE6兼容到IE7模式(推荐) - <!–[if lt IE 7]>
- <script src=”http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE7.js” type=”text/javascript”></script>
- <![endif]–>
复制代码
使IE5,IE6,IE7兼容到IE8模式
- <!–[if lt IE 8]>
- <script src=”http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE8.js” type=”text/javascript”></script>
- <![endif]–>
复制代码
使IE5,IE6,IE7,IE8兼容到IE9模式
- <!–[if lt IE 9]>
- <script src=”http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js”></script>
- <![endif]–>
复制代码
解决PNG显示问题
只需将透明png图片命名为*-trans.png 需要注意的是:此方法对背景平铺(background-repeat)和背景(background-position)无法起到任何作用,默认会占满整个容器。
三、<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″ />
创建html5时发现这么一句话,不知其什么意思,百度如下:
这 样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果没安装GCF,则使用最高版本的IE内核进行渲染。Google Chrome Frame(谷歌内嵌浏览器框架GCF)。这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 让IE(包括IE6)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件。Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求。
- <!–[if IE]>
- <script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
- <![endif]–>
复制代码上面这段代码仅会在IE浏览器下运行,还有一点需要注意,在页面中调用html5.js文件必须添加在页面的head元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。
这个html5的js文件是作者把他放在Google code project上提供给大家可以直接调用的,当然,如果觉得这样会影响你的网页打开速度,你可以把html5的js文件直接下载下来让后上传到自己的服务器单独调用。
以下是html5的js文件中的代码:
- (function(){if(!/*@cc_on!@*/0)return;var e = “abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video”.split(’,'),i=e.length;while(i–){document.createElement(e[i])}})()
复制代码除了在网页中调用包含以上代码的js文件来让IE浏览器支持HTML5元素以外,你也可以以下面这种方式把代码直接添加到网页中。 - <!–[if IE]>
- <script>
- (function(){if(!/*@cc_on!@*/0)return;var e = “abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video”.split(’,'),i=e.length;while(i–){document.createElement(e[i])}})()
- </script>
- <![endif]–>
复制代码 |