1、png图片在IE6下出现透明或背景变灰的bug;
分析: 随处可见,遇到时就想好策略。
解决方法:1、使用滤镜,语法如下
.image-style { background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="filename.png", sizingMethod="scale");
}
注意:使用滤镜需要性能损耗。
2、给IE6单独制作一张.gif图片,打上hack
.image-style{ background:transparent url("filename.png") no-repeat scroll 0 0;
_background-image:url("filename.gif");
}
这种方法只需要在切图时多存储一份.gif格式的图片,一般采用这种方法。
2、position:absolute定位在IE6下存在left和bottom相对最外层视窗(body)定位的bug:
分析: 由于在IE6下,相对定位的元素没有获得IE内部的haslayout属性,因此不创建新的定位上下文,所以绝对定位的元素相对于视口进行定位。
解决方法:1、设置height:1%;//小的高度不会对实际高度找出影响
2、相对定位的祖先元素设置过高度和宽度。
3、相对定位的祖先元素设置_zoom:1,用于触发元素的layout属性。
3、IE6下border不显示的bug
分析:对一个div定义border,但是却不显示。
解决方法:定义宽度;定义高度;清除浮动。
4、在 W3C 规范中 position 是可以使用在任何元素上的,但table元素的 position:relative 却有例外:
<strong>The effect of ‘position:relative’ on table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell, </strong>
|
<strong>and table-caption elements is undefined. </strong>
|
分析:经测试,在浏览器(IE 除外)中给 table 定义 position:relative 属性是无效的。如果的确需要在表格中使用该属性,建议在单元格中嵌套一个 div 元素,再在其上设置 position:relative 属性来模拟。
5、IE6下overflow:hidden失效bug
分析:在开发中经常使用overflow:hidden来清除浮动,也就是在浮动元素的父元素中使用这个属性,就相当于添加了一个clear元素。但是,这在IE6下不给力。
解决方法:只要在父元素中给定一个宽度就可解决这个bug;
6、IE6下的双空白边浮动bug
分析:这是一个常见的出名BUG,给IE6下的浮动元素定义margin-left或者margin-right,实际上是数值的两倍。
解决方法:把这个浮动元素设置为display:inline;
7、IE6下float元素如果没有定义宽度,在浮动时它会自动占满一行的bug
分析:即使对这个浮动元素内部的元素设置了宽度,也是无效的
解决方法:一般用于布局的浮动元素不会要求横向可自由拓展的,那么可以通过设置宽度来解决这个bug.
8、IE6下img元素底部留白的bug
分析:代码结构如下
<div>
<img src="filename" alt="图片" />
</div>
解决方法:把代码结构改成如下:
<div><img src="filename" alt="图片" /></div>
并设置img元素的display:block(img元素默认是一个display:inline的元素)
9、IE6 7下的浮动元素的父元素在拖动滚动条时出现的边框缺失bug
解决方法:设置zoom,使元素获得布局。
10、 IE(6 7 8) 的 z-index bug
分析:看代码
xhtml:
<div id="container">
<div id="box1">这个box应该在上面</div>
</div>
<div id="box2">
这个box应该在下面,IE浏览器会对定位元素产生一个新的stacking
context ,甚至当元素 z-index的为“auto”。
</div>
css:
container { position: relative; }
#box1 { position: absolute; top: 100px; left: 210px; width: 200px; height: 200px; background-color: yellow; z-index: 20; }
#box2 { position: absolute; top: 50px; left: 160px; width: 200px; height: 200px; background-color: green; z-index: 10; }
结果:ff/chrome显示为box1在box2上,而IE确实box2显示在了box1上
原因:IE浏览器会对定位的元素产生一个新的stacking context,并且从z-index:0开始
11、关于IE8的一些资料
12、IE6下的重复字符bug
分析:如下图所示
出现这个BUG的“机遇“其实并不大,要满足以下一个或者多个条件:
1.父元素的内部有多个浮动元素。
2. 最后一个浮动元素前有隐藏元素:包括html注释和display:none的元素
3.子元素的宽度和父元素相同,父元素的宽度减去子元素宽度小于3px
最终得出的结论是:溢出文字的字数=注释的条数 *2-1
这个变态BUG的最早文献是出现在2004年,这里可见。
解决方法:
1.把浮动的子元素加上display:inline;属性(推荐)
2.去掉注释和所有隐藏元素(缺点:特殊情况下不一定可以删除)
3. 把浮动的子元素加上margin-right:-3px;属性(缺点:要加IE6的hack,也算是好方法)
4.在隐藏的DIV外嵌套一个DIV(缺点:增加的结果复杂性)
详解:http://www.cnblogs.com/javashi/archive/2010/05/08/1730504.html
13、IE6下的空div bug
分析:通常在实现可拓展的圆角框时,习惯在头尾使用两个空元素来放置背景图片如<div class="hd"></div>,但是这个空元素在IE6下会莫名的产生一个高度,为原先定义的2倍。代码如下:
1
|
< div class = "hd" ></ div >< br >< div class = "bd" >content</ div >< br >< div class = "ft" ></ div >< br >样式:< br > .hd{background:url("filename") transparent ...; height:5px;}
|
解决方法:为这个空元素设定line-height:0;font-size:1px;即可解决这个bug。
14、IE6下对position:fixed不支持的bug
分析:问题的原因是IE6下的fixed元素绝对定位位置是针对html元素的,而滚动条则是针对body元素的
解决方法:
body{background-image:("xx.gif");}/*一张不存在的图片*/
.fixed{_postion:absolute;expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight))}//底部
expression(eval(document.documentElement.scrollTop));/*头部*/
expression(eval(document.documentElement.clientHeight/2+document.documentElement.scrollTop-80));/*右侧*/
15、IE6下input/textarea/select元素继承父元素的水平margin的bug
分析:http://haslayout.net/css/Form-Control-Double-Margin-Bug
解决方法:这个bug在开发中是经常遇到的,解决方法就是在input或者textarea元素上使用负的margin,使元素重新布局。
16、IE6不支持min-height/max-height/min-width/max-width的bug
分析:无
解决方法:根据IE6的特性模拟出来
height:auto!important;
min-height: x px;/*需要的最小高度*/
height: x px
17、IE6下position:relative的bug
分析:在IE6下父层(或者上层)设置为position:relative且没有写宽度,而这个元素又被一个带有滚动条overflow:auto/scroll属性包含的时候,它将会表现出absulute,并且在鼠标移上去时,会在整个屏幕上滑动;
解决方法:找到了bug的原因后,事情就变得简单了,方法有两种
1、把父层(或者更上层)的relative删掉,但有时候这个relative是必须的,那就只能用第二种方法了;
2、不删除relative,但给这个元素设定一个宽度,可以是100%。
18、IE6下样式不表现
分析:通常一个页面需要载入2-3个样式文件,但其中有某个样式文件里的样式完全不表现,你或许怀疑这个文件没有被加载,这个时候打开IE Debug看文件的传输情况,很清晰的看到文件正常加载了,纳闷吧!后来找到了
原因,主要有两个:
1、这个文件的编码和页面定义的character编码不一致;
2、不正确的注释(这个也有可能是页面编码不正确,而注释是中文导致的)
解决方法:检查页面编码;去掉注释;
19、IE6浮动元素与非浮动元素间隔的3pxbug
分析:在IE下,一个浮动元素与一个非浮动元素相邻时候,中间会莫名的出现一个3px的间隔。
解决方法:1、由于明确知道是3px,所以可以使用负的margin,但是由于IE下不同的盒模式,又会导致宽度上的不同,浮动元素的宽度如果超出了父元素的宽度在IE下是会有bug的,所以不建议使用这种方法。
2、不让浮动元素和非浮动元素相邻,或者把非浮动元素也设置为浮动元素。
20、IE6下img元素底部出现5px的空白间隙bug
分析:
代码结构如下:
<li><a href="#"><img src="xxx.png" alt="xxx"/></a></li>
在ie6下会出现5px的空白。
解决方法:
1、
ul li{display:block;font-size:0;}
img{vertical-align:bottom;}
2、img{_margin-bottom:-5px;}
21、IE下透明度无效bug
分析:在IE的所有版本中,父元素设置了透明度,而子元素如果有position:relative/absolute时,子元素无法继承父元素的透明度。
找了一些资料:http://younglab.blog.51cto.com/416652/431363
解决方法:除了资料中使用的方法(触发layout),还有个土方法,那就是在透明度比较小的区域中,使用具有透明度的图片和字体模糊。
22、IE下overflow:auto/scroll不起作用的bug
分析:在IE下overflow不起作用,但是在火狐下是正常显示的,IE下overflow如同虚设,内容是表现出来了,但是确实在区域的下面显示,滚动条也无法使用。
解决方法:对设置了overflow的元素设定高度和宽度(一般使用滚动条的都会设置这些属性),然后给这个元素进行position定位,relative或者absolute都是可以的
23、IE6 7 8下元素重叠bug
分析:页面操作过程中对一组li元素做remove()或者hide()时,被移除的li的下一个兄弟元素会往下偏移,从而发生元素重叠。
解决方法:js中对这个li元素的父元素加上toggleClass("ie-hack");//ie-hack为不存在的class。
原因不明。
24、IE6/7/8下直接对input输入框使用背景图片,当输入值冲出背景图片宽度时,背景图片会随字符滑动
解决方法:在input框外加一个div,在这个div上设置背景
25、去掉a链接难看外框的方法:
IE下设置hideFocus=true,其他浏览器设置:outline:none
即
<a href="..." hideFocus="true" title=".."/>
a{
outline:none
}
还有一种是用expression的方法,但是耗性能,原因是每秒钟执行了很多次。不推荐是用
a{
blr:expression(this.onFocus=this.blue())
}
分享到:
相关推荐
了解并掌握这些IE常见bug的修复方法,将有助于提升你在开发兼容性网站时的效率和质量。虽然现代浏览器已经大大减少了这些问题,但仍有部分用户在使用旧版IE,因此了解这些问题的解决方案仍然是必要的。
标题:“9个最常见IE的Bug及其fix” 描述:“9个最常见的IE6 Bug,快解决头疼的IE6吧” 在本文中,我们将深入探讨IE6中最为常见的九个Bug,并提供相应的解决方案,帮助Web开发者们解决这个曾经令人头疼的问题。 ##...
本文将深入探讨针对IE6的一个常见问题——透明效果的实现及其相关的修复策略。 首先,让我们理解什么是透明效果。在现代Web设计中,透明或半透明效果是创建美观、交互式用户界面的重要组成部分。它们可以通过CSS的`...
### 最常见的9种IE_css_bug及fix:深入解析与解决方案 #### 1. 居中布局问题 在Web开发中,将元素居中是极为常见的需求。通过设置`margin: auto;`通常能够轻松实现这一目标,但在IE6中,这种方法却会遇到问题。...
以下是一些针对IE浏览器的CSS常见bug及解决策略: 1. **浮动元素的双倍margin问题**: 在IE6中,如果一个浮动元素设置了margin属性,可能会导致实际的外边距比预期的要宽一倍。为了解决这个问题,可以将浮动元素的...
IE低版本常见BUG.zip"专门针对这一主题,提供了关于如何解决IE低版本(如IE6、IE7、IE8)中的常见BUG的教学内容。 首先,我们需要理解的是,IE低版本对HTML5新特性的支持非常有限,因此在编写HTML时,需要谨慎使用...
11. **PPT资源分析**:"ie6的bug.ppt"可能是包含IE6常见问题和解决策略的演示文稿,内容可能包括实际的代码示例、视觉效果展示以及调试技巧。 12. **其他辅助工具**:"ie6Bug"可能是另一个辅助工具或者文档,用于更...
下面,我们将深入探讨IE6中的常见问题以及解决策略。 1. **PNG透明度问题**:IE6不支持PNG8和PNG24格式的阿尔法透明度,导致半透明图片显示不正常。解决方案可以使用CSS滤镜,如`filter: progid:DXImageTransform....
### 常见CSS Bug详解 #### CSS兼容性问题概览 在开发网站时,确保网页能在各种浏览器中正常显示是非常重要的。不同的浏览器对CSS的支持程度各不相同,特别是早期的Internet Explorer(IE)版本与现代浏览器如Fire...
标题中的“莫名其妙的IE 3像素Bug...总的来说,这个3像素Bug是前端开发中一个常见的挑战,尤其是对那些需要确保网站在IE中正常显示的开发者来说。理解这个问题的原因和解决方法对于提升跨浏览器兼容性的技能至关重要。
5. **文档**:可能包括教程、说明或白皮书,解释如何使用提供的工具和源码,以及如何处理常见的AD-IE相关问题。 6. **示例配置**:为了重现特定问题,压缩包可能包含模拟AD环境或IE设置的配置文件。 7. **修复脚本...
本文主要探讨了几个常见的CSS在IE浏览器中的BUG及其解决方案。 1. **错误的扩展与min-height** - 在IE6中,设定`height`或`width`为固定值时,如果内容超出这个值,div会自动扩展,而在其他标准浏览器中,div的...
### 常见 CSS BUG 的处理 在前端开发过程中,我们经常会遇到各种各样的 CSS 问题,这些问题有时候会给项目的进度带来不小的麻烦。本文将重点介绍几种常见的 CSS BUG 以及它们的处理方法,帮助开发者们更好地定位和...
以下是一些关于IE6兼容性和bug的详细解释及其解决方案: 1. **IE6怪异解析模式**:在没有文档声明的情况下,IE6会采用非标准的盒模型解析布局。为解决这个问题,应在文档开头添加`<!doctype html>`声明,使浏览器...
以下是一些常见的IE6 bug及其解决方案: 1. **DOCTYPE声明**:在HTML文档开头添加DOCTYPE声明至关重要,因为它会影响浏览器的渲染模式。在IE6中,不正确的DOCTYPE会导致浏览器进入“怪癖模式”,这将使得页面布局...