一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案

百度也应用了这种方案去解决IE的兼容问题

百度源代码如下

百度一下,你就知道

var wpo={start:new Date*1,pid:109,page:‘superpage’}

可以打开百度,右键查看源码看下!我们可以看下文件头是否存在这样一行代码!

这句话的意思是强制使用IE7模式来解析网页代码!

在这里送上几种IE使用模式!

2. Google Chrome Frame也可以让IE用上Chrome的引擎:

3.强制IE8使用IE7模式来解析

//或者

4.强制IE8使用IE6或IE5模式来解析

 

 

5.如果一个特定版本的IE支持所要求的兼容性模式多于一种,如:

二.设定网站服务器以指定预设兼容性模式

如果服务器是自己的话,可以在服务器上定义一个自订标头来为它们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。

录入,下列的 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模式(推荐)



使IE5,IE6,IE7兼容到IE8模式



使IE5,IE6,IE7,IE8兼容到IE9模式



解决PNG显示问题

只需将透明png图片命名为*-trans.png

需要注意的是:此方法对背景平铺(background-repeat)和背景(background-position)无法起到任何作用,默认会占满整个容器。

转载:http://hi.baidu.com/myplan/blog/item/cdb09dfa1fa748a99f514626.html

三、

创建html5时发现这么一句话,不知其什么意思,百度如下:

这样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果没安装GCF,则使用最高版本的IE内核进行渲染。Google Chrome Frame(谷歌内嵌浏览器框架GCF)。这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。

http://blog.csdn.net/abxn2002/article/details/7312459

常见浏览器的兼容问题

  初学html和css时,每天切图,总会遇到很多浏览器兼容性问题。最近一直关注移动平台开发,就html和css来说,不用考虑那么多浏览器兼容性问题。到现在,以至于很多浏览器兼容性几乎忘光了。今天把以前总结的知识拿来分享一下,顺便自己也复习一下。当然,其中肯定有很多不足,望指正啊。


1 ie6.0横向margin加倍

产生因素:块属性、float、有横向margin。

解决方法:display:inline;

2 ie6.0下默认有行高

解决方法:overflow:hidden;或font-size:0;或line-height:xx px;

3 在各个浏览器下img有空隙(原因是:回车。)

解决方法:让图片浮动。

4 一个父标签与几个子标签嵌套,父标签不浮动,子标签float,子标签不撑开父的高度。

解决方法:a 在子标签最后清浮动{

}

                  b 父标签添加{overflow:hidden;}

                  c 给父标签设置高度

5 Ie6下,不识别最大宽、高度和最小宽高度,意即min-width/height和 Max-width/height在ie6中没效果,

解决方法:(1):.abc{border:1px blue solid;width:200px;height:200px;}

                          html>body .abc{width:auto;height:auto;min-width:200px;min-height:200px;}

        (2):.abc{width:200px;height:200px;_width:200px;_height:200px;}(因为ie6有一个特征,当定义一个高度时,如果内容超过高度,元素会自动调整高度。)

6 Ie6里面:如li设宽、高,并且li里面的标签浮动,那么li之间会有间距

解决方法:li不设宽、高或者li内的标签不浮动

7  li之间有间距

解决方法:li 设置vertical-align:middle;

8 3像素问题:ie6下,当浮动元素与流动元素并列显示时,他们之间会存在三像素问题。

   解决方法:用hack技术, 例如:所有浏览器通用 height:100px; 

                                                  ie6专用_height:100px;

                                                  ie7专用*+height:100px; 

                                                  ie6/ie7共用*height:100px;

9 当定义行内元素为包含框时,且包含框包含的绝对定位元素以百分比为单位进行定位时,会出现混乱。

    解决方法:在行内元素里加入{zoom:1;}

10 当多个浮动元素中间夹杂着HTML注释语句时,如果浮动元素宽度为100%,则在下一行多显示一个上一行最后一个字符。

        解决办法:给浮动元素添加display:inline;。

11 opacity 定义元素的不透明度

  filter:alpha(opacity=80);/*ie支持该属性*/

  opacity:0.8;/*支持css3的浏览器*/

12 两个块元素,竖向的margin值不增加,会重叠,其间距为最大margin值。

13 优先级:被!important 注明的css属性具有最高优先级(.abc{color:red !important;})。但在ie6中!important具有一个bug:在同一组css属性中,!important不起作用。

14 火狐不识别background-position-y 或background-position-x;


---------------------------2014.01.10补充-------------------------------

15 ie6 不支持 fixed 

/*对于非IE6可以这样写*/#top{ 

    position:fixed; 

    bottom:0; 

    right:20px; 

}  /*但是IE6是不支持fixed定位的,需要另外重写*/#top{ 

    position:fixed; 

    _position:absolute; 

    top:0; 

    right:20px; 

    _bottom:auto; 

    _top:expression(eval(document.documentElement.scrollTop));

}  /*使用hack使IE6实现该效果,但这个东东会闪烁,需要以下代码*/*html{ 

    background-image:url(about:blank); 

    background-attachment:fixed; 

}  /*使固定在顶部*/#top{ 

    _position:absolute; 

    _bottom:auto; 

    _top:expression(eval(document.documentElement.scrollTop)); 

}  /*固定在底部*/#top{ 

    _position:absolute; 

    _bottom:auto; 

    _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop)||0)-(parseInt(this.currentStyle.marginBottom)||0))); 

}  /*垂直居中*/#top{    position:fixed;    top:50%;    margin-top:-50px;    _position:absolute;    _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight/2));

}

16  解决 ie6 最大、最小宽高 hack方法

/* 最小宽度 */.min_width{    min-width:300px;    _width:expression(parseInt(this.clientWidth) < 300 ? "300px" : this.clientWidth);

}/* 最大宽度 */.max_width{  max-width:600px;  _width:expression(parseInt(this.clientWidth) > 600 ? "600px" : this.clientWidth);

}/* 最小高度 */.min_height{  min-height:200px;  _height:expression(parseInt(this.clientHeight) < 200 ? "200px" : this.clientHeight);

}/* 最大高度 */.max_height{  max-height:400px;  _height:expression(parseInt(this.clientHeight) > 400 ? "400px" : this.clientHeight);

}


17  z-index不起作用的 bug

1)ie6下 首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件有三个:1、父标签position属性为relative;2、问题标签含有浮动(float)属性。

2)所有浏览器:它只认第一个爸爸

层级的高低不仅要看自己,还要看自己的老爸这个后台是否够硬。用术语具体描述为:

父标签position属性为relative或absolute时,子标签的absolute属性是相对于父标签而言的。而在IE6下,层级的表现有时候不是看子标签的z-index多高,而要看它们的父标签的z-index谁高谁低。

18  ie各个版本hack

/*类内部hack:*/    .header {_width:100px;}            /* IE6专用*/    .header {*+width:100px;}        /* IE7专用*/    .header {*width:100px;}            /* IE6、IE7共用*/    .header {width:100px\0;}        /* IE8、IE9共用*/    .header {width:100px\9;}        /* IE6、IE7、IE8、IE9共用*/    .header {width:330px\9\0;}    /* IE9专用*//*选择器Hack:*/    *html .header{}        /*IE6*/

    *+html .header{}    /*IE7*/

你可能感兴趣的:(一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10)