我看到这个问题已被多次询问,但我认为我的情况略有不同。
我正在处理的网站的导航是使用无序列表构建的,如下所示:
<div class="nav_root nav_area_top">
<ul class="nav_root_wrap">
<li class="nav_parent first">
<a href="california.providence.org/torrance/pages/Locations.aspx">
Locations
</a>
</li>
<li class="nav_parent first">
<a href="california.providence.org/torrance/pages/Locations.aspx">
Health Services
</a>
</li>
</ul>
</div>
...
.nav_area_top ul.nav_root_wrap > li
{
background-image: url(../images/vert_bg_blue.jpg);
background-color: #0C83BB;
padding: 4px 15px 4px 15px;
float: left;
font-size: 13px;
margin-left: 3px;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
min-height: 36px;
text-align: center;
border: 0px;
}
.nav_area_top ul.nav_root_wrap > li > a
{
color:#fff;
padding: 0px;
line-height: 18px;
}
呈现给:
正如您所看到的,某些导航项目是一行,有些则是两行。
我是否可以纵向对齐:中间的一行项目?
答案 0 :(得分:3)
添加此样式(必要时覆盖)
.nav_area_top ul.nav_root_wrap > li {
line-height: 36px;
}
.nav_area_top ul.nav_root_wrap > li > a {
line-height: normal; /* or just choose another value: e.g. 1.5; */
vertical-align: middle;
display: inline-block;
*zoom: 1;
*display: inline;
}
最后两个属性是IE<8
正确呈现inline-blocks
元素所需的内联黑客
答案 1 :(得分:0)
没有固定高度的<li>
很难。如果你确实有一个固定的高度,你可以:
<style>
#centerMe{
line-height:4em
}
</style>
<p id="centerMe">
This line is vertically centered!
</p>
您可以根据自己的喜好设置线条高度。
我也从Nerds to Geeks看到了这个:
#container li{
display: table-cell;
vertical-align: middle;
text-align: center;
font-size:28px;
}
我将p
元素更改为li
;它应该仍然有效。