我有一个使用<ul>
和<li>
标签构建的菜单。我想在部分之间有小分隔符。对于分隔符,我只是在<li>
上设置背景颜色和短高度。看起来很不错......除了在IE7中,<li>
似乎拒绝将其高度更改为比同一<li>
中的所有其他<ul>
更短。我尝试过不同的方法来影响分隔符<li>
的高度(高度,行高,字体大小)但没有成功。
我有一个修复程序将保持分隔符高度不变并在IE 7中为整个背景着色,但这不是我想要的外观(分隔符太大)。任何人都可以想到另一种控制<li>
标签高度的方法吗?
以下是一个示例 - 在IE8切换兼容性视图中将显示问题:
<style type="text/css">
.menu {
width:100px;
}
.menu ul {
list-style-type:none;
border-top: solid 1px red;
padding: 0px;
margin:0px;
}
.menu ul li {
border-bottom: solid 1px red;
padding: 0px;
margin:0px;
white-space:nowrap;
}
.menu ul li a {
font-size: 13px;
text-decoration: none;
color: black;
display: block;
padding: 3px;
}
.menu ul li a:hover {
color: blue;
text-decoration: underline;
}
.menu ul li.separator {
height:4px;
background-color:red;
}
</style>
<div class="menu">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li class="separator"></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
<li><a href="#">Item 6</a></li>
</ul>
</div>
答案 0 :(得分:14)
问题是ie6 / ie7会将空元素扩展到字体的高度。您可以通过将font-size:0
和line-height:0
添加到.menu ul li.separator
来解决此问题。
更好的解决方案是在分隔符之前的<li>
添加更厚的底部边框。
.menu ul li.sep {border-bottom-width:6px}
<div class="menu">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li class="sep"><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
<li><a href="#">Item 6</a></li>
</ul>
</div>
答案 1 :(得分:1)
将LI的css设置为display: block;
。
答案 2 :(得分:1)
也许您应该尝试按照以下方式设置li
:
li{
display:block;
float:left;
height:myHeight;
clear:right;//may be necessary, can't check with IE7
}
这就是我对类似问题的所作所为。
答案 3 :(得分:0)
您是否尝试将line-height
属性添加到.menu ul li
?
否则您是否尝试使用水平规则<hr>
作为分隔符?如果您使用的是横向规则,则可以将margin-top
和margin-bottom
设置为0px
,然后查看会发生什么。不能保证它在IE和其他浏览器上看起来一样,但至少你试过了。 =)
答案 4 :(得分:0)
除了Daniel A. White之外,您还可以尝试使用行高来垂直居中并创建必要的高度。
答案 5 :(得分:0)
执行之前帖子中的建议。如果这些更改导致IE以外的浏览器出现问题,您可以执行以下操作以仅让IE使用它们:
.selector {
prop1 : val1; /* default value for all browsers */
*prop1 : val2; /* only IE will pick this one up and it will override the initial value of prop1. */
}
这比尝试进行特殊注释以包含单独的样式表等更好。