+ -
当前位置:首页 → 问答吧 → a同时设置height和block,置于浮动父元素中,在ie6中独占一行的问题

a同时设置height和block,置于浮动父元素中,在ie6中独占一行的问题

时间:2010-09-03

来源:互联网


<!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> freedom & rich </title> <style type="text/css"> *{margin:0; padding:0;} ul{border-bottom:1px solid black; overflow:hidden; zoom:1; list-style:none;} li{float:left; height:32px; border:1px solid red;} a{display:block;height:28px; border:1px solid blue;} .fl{float:left;} </style> </head> <body> <ul> <li><a href="#">sdfsdf</a></li> <li><a href="#">sdfsdf</a></li> </ul> <div class="fl"><a href="#">sdf</a></div> </body> </html>
 提示:您可以先修改部分代码再运行
如上代码所示,a同时设置了height和display:block, 在ie7/8/ff中,只占据一行中被内容填充了的宽度,但在ie6中却独占一行,解决办法有二:
1、去掉height;
2、将display:block改为display:inline-block;

试着加了zoom:1等与hasLayout相关的属性无效。
这是为什么呢?
请教!谢谢!

[ 本帖最后由 ling3492 于 2010-9-3 11:13 编辑 ]

作者: ling3492   发布时间: 2010-09-03

你把那li也float了  浮动后内容撑开的  如果li不浮动 就不会有了   本身ie6和其他的就不一样  要是出现 ie双倍边距时浮动li一般也不用float   你试一下吧  行内属性加display:block;会成为块的   而且给行内属性加float也可以给行内属性具备块属性的性质可以设宽高

作者: llqfront   发布时间: 2010-09-03