在IE 7中控制<li>的高度

Ray*_*Ray 13 css menu html-lists

我内置菜单<ul><li>标签.我想在部分之间有小分隔符.对于分隔符,我只是设置背景颜色和短高度<li>.看起来很不错......除了在IE7中,<li>似乎拒绝改变它的高度比其他所有<li>s 都短<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>
Run Code Online (Sandbox Code Playgroud)

Emi*_*ily 14

问题是ie6/ie7会将空元素扩展到字体的高度.你可以通过添加font-size:0line-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>
Run Code Online (Sandbox Code Playgroud)