2010-07-14 50 views
0

我有有这个行为完全因为我想在所有浏览器有点麻烦,但我发誓我以前做过这样的:浮动可变宽度的列表项,而不必内容包

<!html> 
<head> 
    <style type="text/css"> 
    div { width:300px; } 
    ul { list-style:none; margin:0; padding:0; } 
    li { margin:0.25em 0.5em 0.25em 0; background:transparent url(http://cdn.iconfinder.net/data/icons/basicset/pencil_16.png) no-repeat scroll 0 0; float:left; } 
    a { padding-left:24px; } 
    </style> 
</head> 
<body> 
<div> 
    <ul> 
     <li><a href="/">Amazon</a></li> 
     <li><a href="/">Barnes &amp; Noble</a></li> 
     <li><a href="/">Books-A-Million</a></li> 
     <li><a href="/">Borders</a></li> 
     <li><a href="/">Indie Bound</a></li> 
     <li><a href="/">Powell's</a></li> 
    </ul> 
</div> 
</body> 

这看起来在大多数现代浏览器中都不错,但在IE 6和7中,“Books-A-Million”链接将会打包。

我想列表项目变量宽度和包装到新行,但内部链接不包装。我无法弄清楚显示类型和CSS浏览器黑客的魔力组合,以使其工作。有没有人解决过这个问题?

回答

0

添加white-space: nowrap;a标签

+0

感谢您的答复。我试过了,但即使Books-A-Million链接现在被强制转到下一行,IndieBulding链接失去了它的填充并现在出现在背景图标上。 – dmrnj 2010-07-14 13:58:37

+0

将'display:inline-block;'或其他'hasLayout'触发器添加到'a'标签(假设不会搞乱其他任何内容)。如果这会导致其他浏览器出现问题(我认为它不会),请通过您最喜欢的IE浏览器方式为您的IE提供'zoom:1'。 – ScottS 2010-07-14 14:13:21