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

Posted

技术标签:

【中文标题】HTML-CSS 在链接中水平和垂直居中文本【英文标题】:HTML-CSS Center Text horizontally and vertically in a link 【发布时间】:2013-01-29 12:48:08 【问题描述】:

我正在尝试创建一个具有 200px 的 heightwidth 的链接。 链接的文本应垂直和水平居中。

这是我目前为止的 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;

这是 html 代码:

<tr>
  <td>
    <a class="Kachel" href="#">Test</a>
  </td>
</tr>

文本水平居中,但不是垂直居中。

知道如何让文本水平和垂直居中吗?

【问题讨论】:

【参考方案1】:

删除所有其他废话,只需将height替换为line-height

a:link.Kachel
   width: 200px;
   line-height: 200px;
   display: block;
   text-align: center;
   background: #383838;

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

【讨论】:

非常感谢。有时这很容易:)。 如果链接有height: 100%怎么办? 如果设置为 150%,通常行高垂直对齐,如果 a 元素的高度设置为 100%,我会使用它 这个解决方案很有意义,但前提是链接文本是单行。我目前正在努力寻找一种方法来垂直对齐范围从 1 到几行的链接文本。【参考方案2】:

在 CSS3 中,您可以使用 flexbox 来实现这一点,而无需任何额外的元素。

.link 
    display: flex;
    justify-content: center;
    align-items: center;

【讨论】:

【参考方案3】:

如果文本只有一行,您可以使用line-height:200px; - 其中200px 与height 的值相同。

如果文本位于多行并且始终位于相同数量的多行中,您可以将paddingline-height 结合使用。 2 行示例:

line-height:20px;
padding-top:80px;

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

JSFiddle example.

如果有多个链接并且它会有任意数量的行,您将需要一些随附的 javascript修复每个链接上的填充。

【讨论】:

【参考方案4】:

如果不知道行数(或内部元素高度),还有一个使用display: tablevertical-align的技巧:

.wrapper
    display: table;

.link
    display: table-cell;
    vertical-align: middle;

Example

Full article with details

【讨论】:

【参考方案5】:

要添加的小点。如果您删除下划线(文本装饰:无;),则文本将不会完全垂直居中。链接为下划线留出空间。据我所知,除了添加一点额外的顶部填充外,没有其他方法可以覆盖它。

【讨论】:

【参考方案6】:

也许使用填充?喜欢:

padding-top: 50%;

【讨论】:

这与此处的其他答案有何不同?【参考方案7】:

在 CSS3 中,您可以尝试将 line-break 与对齐文本一起使用。

text-align: justify;
line-break: anywhere;

【讨论】:

以上是关于HTML-CSS 在链接中水平和垂直居中文本的主要内容,如果未能解决你的问题,请参考以下文章

在 LaTeX 中水平和垂直居中文本 [关闭]

如何在 TextView 中水平和垂直居中文本?

如何使文字在div中水平和垂直居中的css代码

在 HTML 中水平和垂直居中内容?

如何使用自动布局在屏幕中水平和垂直居中 UILabel?

如何在页面中水平和垂直居中微调器? [复制]