浮动列表项中的垂直居中锚点

时间:2013-06-12 11:34:35

标签: css css-float centering

我有一个像这样的简单菜单:

<ul class="menu">
    <li>
        <a href="">Home</a>
    </li>
    <li>
        <a href="">Products</a>
    </li>
    <li>
        <a href="">Contact</a>
    </li>
</ul>

无序列表的列表元素浮动到左侧并具有固定的height

ul.menu li {
    float: left;
    height: 50px;
    list-style: none;
    padding: 0 10px;
    background-color: yellow;
}

jsFiddle

现在我想将列表元素中的锚点垂直居中。

最好的方法是什么?

6 个答案:

答案 0 :(得分:4)

要垂直居中文本,请将line-height设置为与元素高度相同的值。看到你有一个设定的高度,这将没有问题:

.menu li a {
    line-height: 50px;
}

http://jsfiddle.net/QNMy7/3/

答案 1 :(得分:2)

添加行高等于高度:

.menu li {
    float: left;
    height: 50px;
    **line-height: 50px;**
    padding: 0 10px;
    list-style: none;
    background-color: yellow;
}

答案 2 :(得分:0)

.menu li {
    float: left;
    height: 50px;
    padding: 0 10px;
    list-style: none;
    background-color: yellow;
    text-align: center;
    min-width: 100px;
}

.menu li a
{
    line-height: 50px;
}

答案 3 :(得分:0)

问题在于.menu li类。您已声明float向左移动,但为了使其vertically-aligned,您必须移除float并应用display:table-cell;才能获得vertical-alignment 1}}工作。

对于实例,

.menu li {
    /*float: left;*/
    display:table-cell;
    vertical-align:middle;
    height: 50px;
    padding: 0 10px;
    list-style: none;
    background-color: yellow;
}

以下是WORKING SOLUTION

希望这有帮助。

答案 4 :(得分:0)

您可以使用line-height来控制垂直对齐,但这只能在每个列表项中可靠地工作,如果它们都限制在一行中。

实现这一目标的最可靠方法是移除浮子和放大器。将列表项显示为CSS table-cell

.menu {
    display: table;
}

.menu li {
    height: 50px;
    padding: 0 10px;
    list-style: none;
    background-color: yellow;
    display: table-cell;
    vertical-align: middle;
}

.menu li a {
    display: block;
}

这样,如果其中一个链接掉到两条线上,它仍然是垂直居中的,如下所示:

http://jsfiddle.net/QNMy7/6/

答案 5 :(得分:0)

除了float和table-cell之外,你还可以使用inline-block:

.menu li {
    display: inline-block;
    line-height: 50px;
    padding: 0 10px;
    list-style: none;
    background-color: yellow;
}
.menu li a {
    vertical-align: middle;
}

与其他帖子类似,我在line-height: 50px上设置.menu li,在vertical-align: middle元素设置a。您可以在此示例中省略高度。

请参阅演示:http://jsfiddle.net/audetwebdesign/QNMy7/7/