最常见的9种IE css bug及fix.doc_第1页
最常见的9种IE css bug及fix.doc_第2页
最常见的9种IE css bug及fix.doc_第3页
最常见的9种IE css bug及fix.doc_第4页
最常见的9种IE css bug及fix.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Internet Explorer Web程序员的毒药。在IE上开发时间中有超过60%的时间是花在和IE的bug进行搏斗,让你的开发生产率严重下降。下面是一个教程,告诉你9个IE上最常见的BUG以及如何解决它们。1. 居中布局创建一个CSS定义把一个元素放到中间的位置,可能是每一个Web开发人员都会做的事情。最简单的做法是为你的元素增加一个margin: auto; ,然而 IE 6.0 会出现很多奇怪的行为。让我们来看一个例子。查看源代码 打印帮助01#container 02border: solid 1px #000; 03background: #777; 04width: 400px; 05height: 160px; 06margin: 30px 0 0 30px; 07 0809#element 10background: #95CFEF; 11border: solid 1px #36F; 12width: 300px; 13height: 100px; 14margin: 30px auto; 1516下面是我们所期望的输出:但IE却给我们这样的输出:这应该是IE 6对margin的 auto 并没有正确的设置。但幸运的是,这是很容易被修正的。解决方法最简单的方法是在父元件中使用 text-align: center 属性,而在元件中使用 text-align: left 。查看源代码 打印帮助01#container 02border: solid 1px #000; 03background: #777; 04width: 400px; 05height: 160px; 06margin: 30px 0 0 30px; 07text-align: center; 08 0910#element 11background: #95CFEF; 12border: solid 1px #36F; 13width: 300px; 14height: 100px; 15margin: 30px 0; 16text-align: left; 17182. 楼梯式的效果几乎所有的Web开发者都会使用list来创建导航条。下面是你可能会用到的代码:查看源代码 打印帮助1 2 3 4 5查看源代码 打印帮助01ul 02list-style: none; 03 0405ul li a 06display: block; 07width: 130px; 08height: 30px; 09text-align: center; 10color: #fff; 11float: left; 12background: #95CFEF; 13border: solid 1px #36F; 14margin: 30px 5px; 15一个符合标准的浏览器会是下面这样:但IE却是这样的:下面是两个解决方法解决方法一设置li元件的float属性。查看源代码 打印帮助1ul li 2float: left; 3解决方法二设置 display: inline 属性。查看源代码 打印帮助1ul li 2display: inline33. float元件的两倍空白请看下面的代码:查看源代码 打印帮助1#element 2background: #95CFEF; 3width: 300px; 4height: 100px; 5float: left; 6margin: 30px 0 0 30px; 7border: solid 1px #36F; 8期望的结果是:IE的结果是:解决方案和上面那个BUG的解决方案一样,设置 display: inline 属性可以解决问题。查看源代码 打印帮助1#element 2background: #95CFEF; 3width: 300px; 4height: 100px; 5float: left; 6margin: 30px 0 0 30px; 7border: solid 1px #36F; 8display: inline; 94. 无法设置微型高度我们发现在IE中使用 height: XXpx 这样的属性无法设置比较小的高度。下面是个例子(注意高度是2px):查看源代码 打印帮助1#element 2background: #95CFEF; 3border: solid 1px #36F; 4width: 300px; 5height: 2px; 6margin: 30px 0; 7期望结果: 2px的元件加1px的边框.IE的结果:解决方案一这个BUG的产生原因很简单,IE不允许元件的高度小于字体的高度,所以,下面的fix是设置上字体大小。查看源代码 打印帮助1#element 2background: #95CFEF; 3border: solid 1px #36F; 4width: 300px; 5height: 2px; 6margin: 30px 0; 7font-size: 0; 8解决方案二但是最佳的解决方法是使用 overflow: hidden 。查看源代码 打印帮助1#element 2background: #95CFEF; 3border: solid 1px #36F; 4width: 300px; 5height: 2px; 6margin: 30px 0; 7overflow: hidden85. 跨出边界这个BUG是很难看的。当父元件中使用了 overflow 的 auto 属性,并且在其里放入相关元件。你会看来里面的元件会跨出来。下面是一个示例:查看源代码 打印帮助1查看源代码 打印帮助01#element 02background: #95CFEF; 03border: solid 1px #36F; 04width: 300px; 05height: 150px; 06margin: 30px 0; 07overflow: auto; 08 0910#anotherelement 11background: #555; 12width: 150px; 13height: 175px; 14position: relative; 15margin: 30px; 16期望的结果:IE的结果:解决方法设置 position: relative;属性查看源代码 打印帮助1#element 2background: #95CFEF; 3border: solid 1px #36F; 4width: 300px; 5height: 150px; 6margin: 30px 0; 7overflow: auto; 8position: relative; 96. Fixing the Broken Box ModelInternet Explorer曲解了“盒子模子”可能是最不可原谅的事情了。IE 6 这个半标准的浏览器回避了这个事情,但这个问题还是会因为IE运行在“怪异模式”下出现。两个Div元件。一个是有fix的,一个是没有的。而他们不同的高和宽加上padding的总合却是不一样的。下图的上方是被修正的,下方则没有。解决方法我相信这个事情即不需要解释也不需要演示,这应该是大多数人都明白的。下面是一个很相当怪异的解决方案查看源代码 打印帮助1#element 2width: 400px; 3height: 150px; 4padding: 50px; 5上面的定义也就是说:查看源代码 打印帮助1#element 2width: 400px; 3height: 150px; 4height: 250px; 5width: 500px6是的,你要原来的长和宽上加上了padding。但这个fix只会作用于IE了的“怪异模式”,所以你不需要担心在IE6的正常模式下会有问题。7. 设置min-height和min-widthIE忽略了min-height。解决方法一这个fix由 Dustin Diaz提供。其利用了 !important 下面是代码片段:查看源代码 打印帮助1#element 2min-height:150px; 3height:auto !important; 4height:150px; 5解决方法二查看源代码 打印帮助1#element 2min-height: 150px; 3height: 150px; 4 56htmlbody #element 7height: auto; 88. Float 布局错误行为 Misbehaving使用无table的布局最重要的就是使用CSS的float元件。在很多情况下,IE6处理起来好像在摸索阶段,有些时候,你会发现很多奇怪的行为。比如在其中有一些文本的时候。来看一下下面这个示例:查看源代码 打印帮助1 2/ 3 4查看源代码 打印帮助01#element, #anotherelement 02background: #95CFEF; 03border: solid 1px #36F; 04width: 100px; 05height: 150px; 06margin: 30px; 07padding: 10px; 08float: left; 09 1011#container 12background: #C2DFEF; 13border: solid 1px #36F; 14width: 365px; 15margin: 30px; 16padding: 5px; 17overflow: auto; 18期望结果:IE的结果:你可以看到其中的不同了解决方法要解决这个问题没有什么好的方法。只有一个方法,那就是使用 overflow: hidden 。查看源代码 打印帮助1#element 2background: #C2DFEF; 3border: solid 1px #36F; 4width: 365px; 5margin: 30px; 6padding: 5px; 7overflow: hidden; 89. 在list项目门的空行先看下面的例子查看源代码 打印帮助1 2Link 1 3Link 2 4Link 3 5查看源代码 打印帮助01ul 02margin:0; 03padding:0; 04list-style:none; 05 0607li a 08background: #95CFEF; 09display: block; 10期望结果:IE的结果:Fortunately, there are a plethora of fixes you could try.解决方法一定义height来解决查看源代码 打印帮助1li a 2background:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论