【问题标题】:Vertically align text in <a> element with CSS [duplicate]使用 CSS 垂直对齐 <a> 元素中的文本 [重复]
【发布时间】:2013-04-06 03:29:42
【问题描述】:

谁能解释我如何垂直对齐 &lt;a&gt; 元素中的文本 - 所以两个文本都出现在红色框的中间?

http://jsfiddle.net/WeKtX/

这是我的 HTML

<ul>
<li><a href="#">this is a link</a></li>
<li><a href="#">this is an even longer link</a></li>
</ul>

还有我的CSS

li {list-style-type:none;margin:0;padding:0}
li a {width:100px;float:left;background:red;margin-right:20px;height:40px}

非常感谢您的任何指点

【问题讨论】:

    标签: html css vertical-alignment


    【解决方案1】:

    如果您想将文本水平居中,请尝试:

    text-align: center;
    

    如果你想让文本垂直居中,那么试试:

    line-height: 40px; //Where 40px is the height of your parent element
    

    请记住,当使用 line-height 时,它只适用于 一行 文本。如果你想做多行文本,恐怕你必须指定文本的高度,然后在文本上使用position: absolute;,在父元素上使用position: relative;

    对于您的多行示例,我会尝试the following jsFiddle

    li {
        list-style-type:none;
        margin:0;
        padding:0;
        position: relative;
        height: 60px;
        width: 200px;
        display: block;
        background:red;
    }
    
    li a {
        width:100px;
        height:40px;
        position: absolute;
        top: 50%;
        margin-top: -20px;
    }
    

    【讨论】:

    • 好答案。我想我会使用一个类来忽略多行文本上的line-height
    • 查看我编辑的回复。
    • 我能帮助@michaelmcgurk 吗?如果是这样,请将我的答案标记为正确,以便将来对其他人有所帮助!
    • 呵呵,我还在努力解决这个问题——它看起来已经成功了。再等几分钟;-) 再次感谢。
    • 非常高兴能帮上忙!如果您还有什么不明白的地方,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2018-03-30
    • 2013-09-04
    • 2014-04-19
    • 2011-06-14
    • 2011-07-07
    • 2013-11-05
    相关资源
    最近更新 更多