HTML-CSS中心在链接中水平和垂直文本

use*_*896 32 html css vertical-alignment

我正在尝试创建一个具有a heightwidth200px 的链接.链接的文本应垂直和水平居中.

到目前为止这是我的CSS:

a:link.Kachel {
  width: 200px;
  height: 200px;
  margin: 0 auto;
  display: block;
  text-align: center;
  background: #383838;
  display: -webkit-box;
  display: -moz-box;
  display: box;
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
}
Run Code Online (Sandbox Code Playgroud)

这个HTML代码:

<tr>
  <td>
    <a class="Kachel" href="#">Test</a>
  </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

文本水平居中但不垂直.

知道如何让文本水平和美观地集中在一起吗?

Eri*_*ves 59

删除所有其他废话,只需替换heightline-height

a:link.Kachel{
   width: 200px;
   line-height: 200px;
   display: block;
   text-align: center;
   background: #383838;
}
Run Code Online (Sandbox Code Playgroud)

jsfiddle:http://jsfiddle.net/6jSFY/

  • 这个解决方案很有意义,但前提是链接文本只是一行.我目前正在努力寻找一种垂直对齐链接文本的方法,范围从1到几行. (8认同)
  • 如果链接有"高度:100%"怎么办? (6认同)

Kil*_*ves 20

在CSS3中,您可以使用flexbox实现此目的,而无需任何额外元素.

.link {
    display: flex;
    justify-content: center;
    align-items: center;
}
Run Code Online (Sandbox Code Playgroud)


Jam*_*lly 5

如果文本只在一行上,则可以使用line-height:200px;- 其中200px与height值相同.

如果文本在多行上并且将始终在相同数量的多行上,则可以使用padding组合line-height.2行示例:

line-height:20px;
padding-top:80px;
Run Code Online (Sandbox Code Playgroud)

这样两条线将占据总共40px,并且填充顶部将它们完美地放在中间.请注意,您需要相应地进行调整height.

JSFiddle示例.

如果有多个链接并且它将包含任意数量的行,则需要一些附带的JavaScript来修复每个链接的填充.