如何将内联块与文本垂直居中,底部没有空格?

时间:2014-04-03 07:59:03

标签: css whitespace vertical-alignment

我想将所有元素垂直居中对齐,并使用正好50px的高度,但不知怎的,我有2个问题:

  1. 项目使用的高度超过50px(绿色)
  2. ">"文字不是垂直居中的

  3. HTML

    <div>
        <a href="#"><ins class="logo"></ins></a>
        <b>›</b>
        ...
    </div>
    

    CSS

    div {
        background:green;
    }
    a {
        display:inline-block;
    }
    .logo {
        display:inline-block;
        height:30px;
        padding:10px;
        background:blue;
    }
    b {
        line-height:50px;
        height:50px;
    }
    

    结果

    enter image description here


    JS-Fiddle示例: http://jsfiddle.net/pG4y6/


    如何通过更改CSS来实现这一目标?

    enter image description here

2 个答案:

答案 0 :(得分:2)

div {
   background: none repeat scroll 0 0 #008000;
    display: block;
    height: 50px;
    vertical-align: middle;
}

<强> Demo

答案 1 :(得分:0)

为了在DIV中垂直居中一行文本,只需将line-height设置为等于div的高度,所以:

div
{
   line-height:50px;
}

要将div垂直居中于另一个div,最常见的技术是:

.logo 
{
    display:block;
    position:absolute;
    top:50%;
    margin-top:-25px;
}

因此,换句话说,从顶部偏移50%然后再将其向上推,并将负边距顶部设置为半框高度。