垂直对齐锚点内的文本

时间:2012-08-02 02:16:05

标签: html css

我正在尝试集思广益,以便在锚点内垂直对齐文本,并使该方法与浏览器兼容(即7 +)。到目前为止,我提出的最好的方法是在锚点中创建一个虚假元素,然后将锚点的内容包装在一个范围内(<ins>只是一个内联元素)。

<a href="#"><ins></ins><span>blah</span></a>

通常,简单的填充可以实现这一点,但在我的测试用例(http://jsfiddle.net/2jnSP/1/)中,其中一个锚点有多行文本。

所以,如果你有更好的想法,那就扔掉它们吧!

1 个答案:

答案 0 :(得分:0)

修改

我在这里做了一个例子:http://jsfiddle.net/Egqjf/1/

它使用IE的一些条件注释&lt; 8,现代浏览器的display: table等。

这可以适应您拥有的元素。

<强> HTML:

<!--[if lt IE 8]>
<style type="text/css">
.inner {
    position: absolute;
    top: 50%
}
.content {
    position: relative;
    top: -50%
}
</style>
<![endif]-->
<div class="wrapper">
    <!--[if lt IE 8]>
    <div class="inner">
    <![endif]-->
        <div class="content">
            <div>blah blah (line 1)</div>
            <div>lorem ipsum (line 2)</div>
        </div>
    <!--[if lt IE 8]>
    </div>
    <![endif]-->
</div>

<强> CSS:

.wrapper {
    display: table;
    position: relative;
    width: 150px;
    height: 200px;
    background: green
}
.content {
    display: table-cell;
    vertical-align: middle
}

原始答案可能对此问题无用,但可能对其他人有用:


<强> HTML:

<a href="#">blah</a>

<强> CSS:

a {
    display: block;
    height: 50px;
    line-height: 50px
}