关于IE中DIV的默认BR高度
在前端开发中经常会用到一些不设置高度的元素,用的最多的,例如清理元素,大家经常会这么写:selector{clear:both;}
他能清理浮动是没错,但是不注意的话就会在IE下造成一些不和谐。请大家看如下样式和图例—–
< !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=utf-8″ />
< title >test BR< /title>
< style type=”text/css”>
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,
blockquote,th,td{margin:0;padding:0;}
#testBr{ width:950px;height:10px;background:#000; }
< /style >
< /head >
< body >
< div id=”testBr”>< /div>
< /body>
< /html>
下面是#testBr在不同高度值下的表现:
我就想,是不是默认IE下,一个DIV的高度为15px.于是有了下面的结构,样式和图:
<!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=utf-8″ />
< title >test BR< /title >
< style type=”text/css” >
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,
blockquote,th,td{margin:0;padding:0;}
.testBr{width:950px;height:5px;background:#000;}
< /style>
< /head>
< body>
< div class=”testBr”>< /div>
< br/>
< div class=”testBr”>< /div>
< /body>
< /html>
这里的.testBr高度是从5px到23px。这种情况下,可以发现div的高度又变成了20px,同时,BR的高度也在变化,也是20px。-_-!!!,初步判断,IE下默认DIV高度在15到20px之间。。。。
依然是overflow:hidden;可以让IE和标准浏览器表现统一。所以大家在使用这种状态的元素时,记得overflow:hidden;以免带来“意想不到的”效果。特别的在用于清理浮动的元素样式一定要加上这个。。。




八月 17th, 2008 at 22:15
overflow:hidden在运用上也不可太滥
比如js实现某些弹出层效果.就会有影响.
虽然z-index.也可以解决,但性价比会差很多
八月 18th, 2008 at 08:43
哈哈,是呀,一般只在针对IE并且是“IE下默认DIV高度在15到20px之间”下的clear时
谢谢稻草提醒
十二月 25th, 2008 at 12:59
这个问题是由于浏览器默认有行高。在样式表定义里加上font-size:0;就能避免
七月 4th, 2009 at 11:24
我通常这样设置
font:0/0 Arial;