博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IE Bugs 列表和解决方法
阅读量:6567 次
发布时间:2019-06-24

本文共 5145 字,大约阅读时间需要 17 分钟。

老外的 网站上,系统的总结了IE的一些Bugs,分享一下

这个网站上包含了 46 个“普通的Bug” , 5个“布局方面的Bug” ,6 个“可以绕开的Bug” 以及 1 个“IE崩溃的Bug”,所有的这些Bug有58个指南和70个解决方法。

IE的CSS Bug:普通Bug

这部分 IE 的 bug 是比较普通的无法归到其它种类,或是同时属于多个种类的Bug。

General Internet Explorer
CSS Bugs
解决方法名称 IE的版本 描述
(图片label bug) IE8, IE7, IE6 当label中有img的时候无法触发点击选中form元素事件.
(设置margin auto的button没有居中) IE8 如 果给像button这样的标签(如button input[type="button"] input[type="submit"])设置{ display: block; margin-left: auto; margin-right: auto; }如果不设置宽度的话无法居中。
(不正确的浮动伸展布局) IE7, IE6 连续浮动的元素并且设置clear属性没法自动伸展。
(文档滚动bug) IE7, IE6 不在html标签上设置overflow或许会影响到body上面的overflow。
(连续浮动元素bug) IE7, IE6 A gap appears between last and second last floated elements that are stacked vertically.
(连续浮动字符出现重复字符) IE7, IE6 这个和上面的解决方案都差不多,它是通过加一个宽度,而这个是通过给浮动字符加一个position:relative;
(空元素高度bug) IE7, IE6 有layout的空元素获得了高度
(表单元素双margin bug) IE7, IE6 input和textarea或许会继承父元素的水平的margin
(ie7的1px dotted 边框变成dashed边框的bug) IE7 当设置了1px dotted边框后,有一个边框的宽度大于1px
的话其它为1px边框会变为dashed的样式
(overflow bug) IE7, IE6 当设置了overflow:hidden或auto的元素,如果子元素设置了相对定位,overflow就不起作用了,
表现的是visible的样式,解决方法是给父元素加一个position:relative;
(ie7的坏的:hover 绝对定位bug) IE7 当子元素设置了absolute并且通过设置left top 等来通过:hover时改变其显示位置时将会不起作用如果他们不再父元素的可视范围内,解决方法是给其加上margin-left:0%;
(当:active时Button背景偏移) IE8 给button设置:active时背景会做偏移,可以通过设置:active时的-ms-background-position-x和-ms-background-position-y来改变这个偏移。
  IE8 A ruleset, selector of which contains :focus that is followed by another simple selector, is ignored
(:hover边框消失bug) IE8 当设置了outline的元素后,再设置:hover的时候,如果设置边框的话,将会不显示
(百分比padding垂直margin bug) IE8 当父元素设置了百分比的padding,子元素有垂直的margin的时候,
就好像父元素被设置了margin一样,解决方法是给父元素加一个overflow:hidden/auto
(图片浮动List标记错位bug) IE8 当List里面有浮动的image时,List标记显示的位置跑在里面了,可以通过使用背景图片代替List自带的标记来解决。
(TH没有继承Text-Align属性的bug) IE8 当给table设置text-align时,TH没有继承样式,可以通过给TH设置text-align:inherit;来解决IE8下这个丑陋的bug。
(32个Style限制) IE8, IE7, IE6 在32个”style”方法(style, link, @import)后浏览器会忽略后面的样式
(白色背景hover bug) IE7 background 不会因为 :hover而改变,给hover设置background-color:#ffffff;时,背景不会改变,解决方法是设置background:#ffffff;
IE7 一个 selector 包含了一个子的selector,如果后面跟着一个注释,则会被完全忽略。
(* html bug) IE6 * html [selector]在ie6下通常不会被忽略,这个bug通常被用来作IE6的hack使用。
IE6 !important 关键字会忽略,important之后设置同样的规则后important会被忽略,这个bug也常被用来指定ie6的样式。
(png图片和背景颜色不一致) IE8 ,IE7,IE6 设置背景颜色和png图片背景同样的颜色代码最后表现不一致,原来是因为ie支持,解决方案是通过一个程序来优化图片。而他们本来是一致的。IE认为这是他一个Feature。太可笑了。
IE8 ,IE7,IE6 如 果把margins 设置成 `auto` ,IE不会把组件放置在中间的位置。所有的浏览器都会,只有IE不会。给block元素设置margin auto无法居中,出现这种bug的原因通常是没有Doctype,然后触发了ie的quirks mode,加上<!DOCTYPE html>就可以了。
(:first-line/:first-letter里的!important会忽略) IE8 如果在伪class :first-line 内使用!important,那么其所有定义会被忽略。
IE6 当:first-letter前面有逗号的时候ie6会忽略这条规则,解决方法是将:first-letter放到最后。
IE8 如果在伪class :first-letter内使用!important,那么其所有定义会被忽略。
E7,IE6 设置了整个区域是可以点击的,但在IE中只有文本可以点击。
E7,IE6 浮动的元素排序起来就像一个楼梯。
IE6 B <li>, <dt>, <dd> 没有背景。
IE8,IE7,IE6 <noscript> 标识中只有 borders/background 才有用。
(透明区域无法点击bug) IE8,IE7,IE6 背景透明的图片在作为链接时,并且其“filter”被设置成了PNG透明,但其背景还是不可点击。
(List标记偏移) IE8 在<li> 中的内容被换行了。 当给list里面的元素设置display和overflow属性后List标记会偏移,解决方法是给里面的元素加一个float:right; width:100%;可以使用ie的条件注释针对ie8
(ol数字标记不自增) IE7,IE6 <ol> 中的 <li> 列表序号不会增加。 当给li设置宽度时会触发这个bug,解决方法是给li设置display:list-item .
(ul/ol标记消失bug) IE7,IE6 在<ul> 和 <ol> 中看不到列表序号/数字了。 当ul/ol触发了layout并且有margin-left会触发这个bug,解决方案是给li设置margin-left .
(图片不垂直居中) IE7,IE6 图片使用line-height 方法不能垂直居中. 当使用line-height来居中图片时在ie6/7下不会生效,解决方法是在img后加一个空白元素如<span></span>.
(没有背景图片bug) IE8,IE7,IE6 在IE中使用background无法定义背景图. 当使用background的时候如果在url()后没有加空格背景图片就不会显示。
(自定义鼠标bug) IE8,IE7,IE6 自定义鼠标不工作. 当自定义鼠标样式的时候,如果url()里面的路径是相对路径的话,ie会认为相对于当前文档而不会出现鼠标样式的图片,解决方法是采用绝对路径。
(背景溢出bug) IE6 背 景从一个元件的内部溢出到外部. 一个容器里面有浮动元素并且通过加一个clear:both的额外div来清除浮动会产生此bug,解决方案就是建议尽量不要通过增加一个 clear:both的div来清除浮动,可以通过在外层加上overflow:hidden;对于ie可以通过加上zoom:1;来触发ie的 layout
(高度扩展bug) IE6 元件的高度比指定的要长得多。 当高度很窄如小于12px时ie6会扩展高度,解决方法是设置overlfow:hidden或font-size:0;
(宽度扩展bug) IE6 元件的宽度比指定的要长得多。 当连续英文字符的时候设定宽度不起作用,解决方法是设置overflow:hidden或word-wrap:break-word;
(浮动双margin) IE6 float元件的左和右的空白(margins)被加倍了。 当给一个浮动元素设置margin-left或margin-right时margin加倍,解决方法是加上一条display:inline;
(负margin bug) IE7,IE6 如 果使用负数来指定页白(margins)里面的元件会被外面的元件所遮挡。 当给一个有layout容器里面的元素设置负marin时内容会被截断,解决方法是不让容器有layout或者给负marin的元素设置 position:relative;zoom:1;
IE6 float的元件中的字体会被设置成倾斜。
(3px间距bug) IE6 下一个float的元件不是有一个3px的空隙,就是被换行了。 当几个连续浮动且有layout的元素排列时会有3px的间距,解决方法就是给这些元素设置3px的负margin或加上overflow:hidden;
IE7,IE6 text- align属性会影响整个元件内的所有内容。 当容器外面设置了text-align,如果容器里面有文本和其他block的元素, block的元素也会继承text-align,这是不正确的,解决方法是重新写出合理的有语义的markup,如文本外面加一个p.

IE的CSS Bug:布局类 Bug

hasLayout Internet Explorer
CSS Bugs
解决方法名称 IE的版本 描述
IE7, IE6 elements with layout clear floats instead of going around floated elements
IE6 连框显示是混乱的
IE6 一些selectors 如 a:hover foo{} 无法正常工作
IE6 在定义了display: block的链接中(<a>) 只有文本是可以点的。
IE6 当我们滚动窗口的时候,或是最大化最小化窗品的时候,有一些内容会重复显示。

IE的CSS Bug:不支持的功能

No Support Workarounds
解决方法名称 IE的版本 描述
IE6 子 selector 将被忽略
IE6 max-height 不支持
IE6 max-width 不支持
IE8,IE7,IE6 opacity 属性不支持
IE6 min-width 属性不支持
IE6 min-height 属性将被忽略

IE的CSS Bug:程序崩溃 Bug

这个BUG可以导致整个 IE 崩溃.

Crash Bugs
解决方法名称 IE的版本 描述
IE6 当你把鼠标移上 :hover 的链接时,浏览器会崩溃。

原英文来源:http://haslayout.net/css/

中文译文来源:http://coolshell.cn/?p=1245

转载于:https://www.cnblogs.com/JoannaQ/archive/2012/08/29/2661296.html

你可能感兴趣的文章
Spring AOP + AspectJ annotation example
查看>>
Spring VS EJB 3 的若干认识误区(转)
查看>>
React.js初探(一)
查看>>
json_encode后的中文不编码成unicode
查看>>
修改纵断面图标注栏
查看>>
Flex创建带有空间信息的椭圆(Polygon)
查看>>
Centos7.1环境下搭建BugFree
查看>>
共用y轴的双图形绘制
查看>>
第31讲 | 数字货币钱包服务
查看>>
P2073 送花
查看>>
iOS端项目注释规范附统一代码块
查看>>
HTTP深入浅出 http请求
查看>>
为YUM设置代理的方法
查看>>
Java 编程的动态性 第1 部分: 类和类装入--转载
查看>>
【转】持久化消息队列之MEMCACHEQ
查看>>
Dom4j学习笔记
查看>>
C语言 HTTP上传文件-利用libcurl库上传文件
查看>>
[MEAN Stack] First API -- 7. Using Route Files to Structure Server Side API
查看>>
调试逆向分为动态分析技术和静态分析技术(转)
查看>>
业务对象和BAPI
查看>>