时间:2022-04-25 09:26:50
告诉你10个常见的IE bug和解决方法:
我列举了10个常见的IE bug和解决方法。我相信这将能够帮助你减少调试IE布局不一致时花掉的时间。
在处理IE方面每个人都有他们自己的故事。作为一个开发者我不得不面对大量的IE的古里古怪的问题并且有的时候你只是想用头撞墙。但是随着时间的推移,我们慢慢吃一堑长一智(有些时候那不是我们的错,是IE的错!)并且开始接受和理解IE的怪异行为。我们不得不这样因为仍然有数量可观的IE6用户。最好的做法是一开始就不断的从不同的浏览器测试你的网站。从一开始就解决布局问题要比在数千行html和css代码之后容易的多。
有很多运动在抗议IE6,支持它的是大多数web专家和看起来不怎么关心的普通用户。所以,我们现在能做什么?我们不得不继续挖掘来解决IE6的问题。但是,等一下,有一个振奋人心的消息。基于w3cschool的月度报表,IE6的用户这些年已经减少了一些。从2006年6月的60.3%到现在2009年9月的13.6%。按照这种比例,我们应该能在2010年年底的时候放弃IE6(译注:国外的情况还真是一片大好啊~。~)
好了,回到现实,我已经列出了全部我之前遇到的问题作为未来参考的列表。我相信这将能够帮助你减少调试IE布局不一致时花掉的时间。
1、IE6 幽灵文本(Ghost Text bug)
在我写本文之前,我遇到了这个bug。它相当的古怪和滑稽。一块不知哪来的重复的文本,被IE6显示在靠近原文本的下面。(译注:也可以参看 Explorer 6 Duplicate Characters Bug获得bug演示)。我无法解决它,所以我搜索它,果然,这是另一个IE6的bug。
对此有许多解决方法,但是没有一个对我的例子有效(因为网站的复杂性我无法使用其中的一些方法)。所以我使用了hack。在原文本之后增加空格看起来能解决这个问题。
但是,从 Hippy Tech Blog那里了解到,问题背后的原因是由于html注释标签。IE6不能正确的渲染它。下面是他建议的解决方案列表:
解决方法:
使用标签包围注释
移除注释
在前浮动上增加样式 {display:inline;}
在适当的浮动的div上使用负边距
在原文本增加额外的(比如10个空格) (hacky way)
2、相对位置和溢出隐藏(Position Relative and Overflow Hidden)
这个问题我遇到过很多次,当时我正在准备一个JQuery的教程,因为我使用了很多overflow hidden来达到我想要的布局。
问题发生在当父元素的overflow被设置成hidden并且子元素被设置成position:relative。
CSS-Trick有一个很好的例子来演示这个bug。position:relative and overflow in internet explorer
解决方法:
为父元素增加position:relative;
3、IE的最小高度(Min-Height for IE)
这很简单,IE忽略min-height属性。你可以用下面的hack来修复它。感谢Dustin Diaz。
这个解决方法在IE6, Mozilla/Firefox/Gecko, Opera 7.x+, Safari1.2里都工作的很好。
解决方法:
selector {
min-height:500px;
height:auto !important;
height:500px;
}
4、Bicubic图像缩放(Bicubic Image Scaling)
你会喜欢这个的。IE那糟糕图像缩放让你很困扰?如果你拿IE和其他浏览器比较,IE缩小的图像看起来不如其他浏览器。
解决方法:
img { -ms-interpolation-mode: bicubic; }
5、 PNG透明(PNG Transparency)
我猜每个人都知道这个,但我仍把它列在这里,作为以后的参考。
所以如果你想要使用透明图像并且GIF不能给你想要的质量,你会需要这个对PNG的hack。你必须意识到,如果你使用一张PNG图像作为背景,你将不能设置背景的位置。
解决方法:
img {
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);
}
6、 IFrame透明背景 (IFrame Transparent Background)
在firefox和safari里你应该不会遇到这个问题因为默认情况下,iframe的背景被设置为transparent,但是在IE里,却不是如此。你需要用到allowTransparency 属性并且加入下面的CSS代码来达成目的。
解决方法:
/* in the iframe element */
/* in the iframe docuement, in this case content.html */
body {
background-color:transparent;
}
7、禁用IE默认的垂直滚动条(Disabled IE default Vertical Scroll bar)
默认情况下,即使内容适合窗口大小,IE(译注:IE6/7)也会显示垂直滚动条。你可以使用overflow:auto,让滚动条只在你需要时出现。
html {
overflow: auto;
}
8、:hover伪类(:hover Pseudo Class)
IE只支持元素的 :hover伪类。你可以使用jQuery的hover event来达到相同效果。
解决方法:
/* jQuery Script */
$('#list li').hover(
function () {
$(this).addClass('color');
},
function() {
$(this).removeClass('color');
}
);
/* CSS Style */
.color {
background-color:#f00;
}
/* HTML */
Item 1
Item 2
Item 3
9、盒模型Hack(Box Hack Model)
这是IE里最热门的bug了。基本的理解是,IE计算宽度(width)的方式不同。基于w3c标准,一个元素总宽度应该是:
总宽度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right
但是,IE计算宽度时没有加上填充和边框:
总宽度 = margin-left + width + margin-right
更多的细节,请参考这个链接:Internet Explorer和CSS盒模型详细解释
解决方法:
使用w3c的标准兼容模式。IE6或者之后的版本能基于w3c的标准计算,但是你仍旧会在IE5中遇到问题。
或者你可以用CSS Hack来解决这个问题。所有标准兼容的浏览器都能读取width:180px 除了IE5。
#content {
padding:10px;
border:1px solid;
width:200px;
width:180px;
}
10、 双倍边距bug(Double Margin Bug Fix)
如果你有一个分配有左/右边距的浮动元素,IE6会使得边距双倍化。比如,margin-left:5px 将会变成10px。你可以通过对浮动元素添加display:inline来解决这个问题。
解决方法:
div#content {
float:left;
width:200px;
margin-left:10px;
/* fix the double margin error */
display:inline;
}
在如今的数字时代, Windows 10 作为一款流行的操作系统,成为许多用户的首
一技能:比赛时幻化成尾挂,氮气或加速带时产生拖尾,加速度提升12%。二技能:被墨汁或闪电攻击,46%概率立即获得导弹,每局上限4个。三技能:每次进入漂移,33%概率6秒内基础最高速度+3km/h。
伊藤美诚扬言世乒赛要击败很多中国选手怎么回事?根据日本NHK新闻网站报道,伊藤美诚对11月举办的世乒赛进行了展望,并希望在世乒赛上击败很多中国选手,下面就让小编带大家了解一
邪恶冥刻游戏里很多时候是需要玩家开动脑筋来解决问题的,有些谜题比较简单,但是也有容易让人卡关的解谜内容,有很多玩家就在第一章遇到了比较麻烦的时钟谜题,邪恶冥刻时钟谜题
很多人都喜欢在抖音上发自己的吃喝玩乐,记录生活。而抖音上面一晃转场景,换了很多场景的视频怎么拍摄的呢?一起看看下文吧。
360浏览器不能边播边录怎么办?360浏览器不能边播边录的解决方法,360浏览器是一款很多用户在选择浏览器时候的第一选择,这里有非常多的丰富内容,用户可以使用手机快速选择自己想要的内容,直接使用网页就可以浏览自己想要的内容,使用超级的方便,也有很多用户会使用这款软件一边看新的内容,一边录...
空闲大都市无限金币版是一个休闲类模拟打理游戏,空闲大都市无限金币版中游戏玩家们要从赤贫如洗开启打理你自己的事业到最后时限万贯家财,空闲大都市无限金币版你可以招募各有战
iMobieDroidKit是一款非常不错的手机数据恢复软件,能够帮助用户快速找回误删、中毒导致丢失的文件内容,支持图片、通讯录、聊天记录、视频、音频等多种格式文件,有需要的用户不要错
军团冲锋下载,军团冲锋是一款相当精彩的军团策略战争游戏,军团冲锋游戏虽然没有华丽的游戏场景但是给玩家们带来的体验感一点都不少,军团冲锋可玩性超级高,军团冲锋游戏属于越玩越好玩的类型
临清人社认证app下载-临清人社认证app是一款提供社保认证服务的应用,临清人社认证软件上直接可以进行信息录入,一键面部识别认证,临清人社认证app让你足不出户完成各类社保认证,您可以免费下载安卓手机临清人社认证。
扫描仪超清王app下载-扫描仪超清王是一款好用的扫描仪软件,可以快速的对图片进行扫描,还能拍照瞬间扫描识别文字,扫描仪超清王文字识别精准高效。,您可以免费下载安卓手机扫描仪超清王。