IE6下的CSS BUG枚举

时间:2010-06-11 10:45:00 

1、终极方法:条件注释

<!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本。 <![endif]-->

<!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本。 <![endif]-->

<!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6)。 <![endif]-->

<!--[if IE 5.5]> 这段文字仅显示在 IE5.5。 <![endif]-->

<!--在 IE6及IE6以下版本中加载css-->

<!--[if lte IE 6]> <link type="text/css" rel="stylesheet" href="css/ie6.css" mce_href="css/ie6.css" /><![endif]-->
缺点是在IE浏览器下可能会增加额外的HTTP请求数。

2、CSS选择器区分

IE6不支持子选择器;先针对IE6使用常规申明CSS选择器,然后再用子选择器针对IE7+及其他浏览器。

/* IE6 专用 */

.content {color:red;}

/* 其他浏览器 */

div>p .content {color:blue;} -->

3、PNG半透明图片的问题

虽然可以通过JS等方式解决,但依然存在载入速度等问题,所以,这个在设计上能避免还是尽量避免为好。以达到网站最大优化。

4、IE6下的圆角

IE6不支持CSS3的圆角属性,性价比最高的解决方法就是用图片圆角来替代,或者放弃IE6的圆角。

5、IE6背景闪烁

如果你给链接、按钮用CSS sprites作为背景,你可能会发现在IE6下会有背景图闪烁的现象。造成这个的原因是由于IE6没有将背景图缓存,每次触发hover的时候都会重新加载,可以用JavaScript设置IE6缓存这些图片:

document.execCommand("BackgroundImageCache",false,true);

6、最小高度

IE6 不支持min-height属性,但它却认为height就是最小高度。解决方法:使用ie6不支持但其余浏览器支持的属性!important。

#container {min-height:200px; height:auto !important; height:200px;}

7、最大高度

//直接使用ID来改变元素的最大高度
var container = document.getElementById('container');
container.style.height = (container.scrollHeight > 199) ? "200px" : "auto";

//写成函数来运行
function setMaxHeight(elementId, height){
var container = document.getElementById(elementId);
container.style.height = (container.scrollHeight > (height - 1)) ? height + "px" : "auto";
}

//函数示例
setMaxHeight('container1', 200);
setMaxHeight('container2', 500);

8、100% 高度

在IE6下,如果要给元素定义100%高度,必须要明确定义它的父级元素的高度,如果你需要给元素定义满屏的高度,就得先给html和body定义height:100%;。

9、最小宽度

同max-height和max-width一样,IE6也不支持min-width。

//直接使用ID来改变元素的最小宽度
var container = document.getElementById('container');
container.style.width = (container.clientWidth < width) ? "500px" : "auto";

//写成函数来运行
function setMinWidth(elementId, width){
var container = document.getElementById(elementId);
container.style.width = (container.clientWidth < width) ? width + "px" : "auto";
}

//函数示例
setMinWidth('container1', 200);
setMinWidth('container2', 500);

10、最大宽度

//直接使用ID来改变元素的最大宽度
var container = document.getElementById(elementId);
container.style.width = (container.clientWidth > (width - 1)) ? width + "px" : "auto";

//写成函数来运行
function setMaxWidth(elementId, width){
var container = document.getElementById(elementId);
container.style.width = (container.clientWidth > (width - 1)) ? width + "px" : "auto";
}

//函数示例
setMaxWidth('container1', 200);
setMaxWidth('container2', 500);
11、双边距Bug

当元素浮动时,IE6会错误的把浮动方向的margin值双倍计算。个人觉得较好解决方法是避免float和margin同时使用。

标签:IE6,CSS,bug
0
投稿

猜你喜欢

  • ASP环境中使用QQ纯真版IP数据库QQWry.dat

    2010-02-26 13:35:00
  • ASP使用wsImage组件给图片加水印代码

    2010-06-09 19:23:00
  • 中国,美国,英国3国时间同步动态显示js代码

    2007-09-27 20:34:00
  • ASP操作XML的方法

    2008-03-06 21:43:00
  • 使用Filter实现信息的二次检索

    2007-10-08 19:19:00
  • 记录下两个正则表达式的使用

    2009-11-30 12:56:00
  • ASP实现语音分时问候

    2007-10-02 12:12:00
  • Oracle9iPL/SQL编程的经验小结

    2010-07-23 12:49:00
  • JavaScript match() 方法

    2007-11-04 13:28:00
  • 用好Frontpage中的各种回车

    2008-02-21 14:33:00
  • MySQL的一些安全注意点

    2008-12-24 16:29:00
  • 用JavaScript实现UrlEncode和UrlDecode功能

    2008-01-27 11:30:00
  • 一些关于SQL2005+ASP.NET2.0的问题

    2007-09-23 13:01:00
  • Mysql日期和时间函数大全

    2011-03-08 09:52:00
  • ie6下实现position-fixed效果

    2009-06-05 18:47:00
  • 如何在网页上使用VBScript和JScript

    2008-05-05 19:53:00
  • Asp Response.Expires 属性介绍

    2008-02-19 17:02:00
  • 快速升级MySQL系统表

    2009-01-23 12:35:00
  • ASP判断一个字符串中只包含字母和数字

    2008-08-08 12:12:00
  • IE在DOM操作有表单控件时的bug

    2008-08-21 13:00:00
  • asp之家 网络编程 m.aspxhome.com