IE6的双倍,3px,注释引起的文字错位等几个BUG解决方法
(编辑:jimmy 日期: 2024/11/5 浏览:3 次 )
1、IE 6 中 ,DIV 使用背景图片(或直接插入图片在DIV中)的时候,在图片的下端会出现一条空白间隔,经测量,刚好是 3px .
解决办法:
IE6默认字号是12pt,默认行高是normal。
找到原因就好解决了,给DIV加上:font-size: 0px;
2、IE6双倍浮动BUG及解决办法
比如
复制代码代码如下:
#div1 {
float:left;
margin-left:10px;
width:200px;
height:200px;
border:1px solid red
}
左margin边界设定为了10px,然后IE6却偏偏给你显示成双倍的20px,
解决办法:
加上display:inline;
3、ie6/7由注释引起的文字错位:
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>多了一只IE6猪</title>
</head>
<body>
<div style="width:400px">
<div style="float:left"></div>
<!-- -->
<!-- -->
<!-- -->
<div style="float:right;width:400px">↓这就是多出来的那只IE6猪</div>
</div>
</body>
</html>
这是个经典的例子。IE6在使用一大堆注释放在包含在同一个DIV的不同元素之时就会这样,重复一些文字在文字的顶或底部。
我在ASP生成HTML的循环语句中使用了一段注释,结果在IE7下显示整个DIV顶部像空了一截,底部正常,而IE6则顶部空一截,底部还有重影文字,就像上面多出现的猪一样。
解决方法是:去掉注释或者注释不要放置于2个浮动的区块之间。
4、IE6的著名3px BUG(断头台bug):
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>52css.com</title>
<style type="text/css">
<!--
#left {
float:left;
width:200px;
height:100px;
background:#f00;
}
#right {
width:200px;
height:100px;
background:#fc0;
}
-->
</style>
</head>
<body>
<div id="left">oyksoft.com</div>
<div id="right">oyksoft.com</div>
</body>
</html>
两个层,一个浮动,一个不浮动,把浮动的一个放在不浮动层中,你会发现两个之间有点间隙,宽度为3px。这个问题是最让人头疼的问题了。
解决方法:
1、所有的层都浮动 把右边那个层也设置成浮动层就可以消除这可恶的3px间隔
2、给左边的层,应用margin-right:-3px;,同样可解决IE 3px bug。
解决办法:
IE6默认字号是12pt,默认行高是normal。
找到原因就好解决了,给DIV加上:font-size: 0px;
2、IE6双倍浮动BUG及解决办法
比如
复制代码代码如下:
#div1 {
float:left;
margin-left:10px;
width:200px;
height:200px;
border:1px solid red
}
左margin边界设定为了10px,然后IE6却偏偏给你显示成双倍的20px,
解决办法:
加上display:inline;
3、ie6/7由注释引起的文字错位:
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>多了一只IE6猪</title>
</head>
<body>
<div style="width:400px">
<div style="float:left"></div>
<!-- -->
<!-- -->
<!-- -->
<div style="float:right;width:400px">↓这就是多出来的那只IE6猪</div>
</div>
</body>
</html>
这是个经典的例子。IE6在使用一大堆注释放在包含在同一个DIV的不同元素之时就会这样,重复一些文字在文字的顶或底部。
我在ASP生成HTML的循环语句中使用了一段注释,结果在IE7下显示整个DIV顶部像空了一截,底部正常,而IE6则顶部空一截,底部还有重影文字,就像上面多出现的猪一样。
解决方法是:去掉注释或者注释不要放置于2个浮动的区块之间。
4、IE6的著名3px BUG(断头台bug):
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>52css.com</title>
<style type="text/css">
<!--
#left {
float:left;
width:200px;
height:100px;
background:#f00;
}
#right {
width:200px;
height:100px;
background:#fc0;
}
-->
</style>
</head>
<body>
<div id="left">oyksoft.com</div>
<div id="right">oyksoft.com</div>
</body>
</html>
两个层,一个浮动,一个不浮动,把浮动的一个放在不浮动层中,你会发现两个之间有点间隙,宽度为3px。这个问题是最让人头疼的问题了。
解决方法:
1、所有的层都浮动 把右边那个层也设置成浮动层就可以消除这可恶的3px间隔
2、给左边的层,应用margin-right:-3px;,同样可解决IE 3px bug。
下一篇:CSS样式position属性的一个小实例:z方向三层布局分析