CSS - 正确的文本垂直中心对齐[重复]

问题描述 投票:-1回答:3

这个问题在这里已有答案:

我需要垂直对齐div中的文本。我找到了许多方法,但没有一个方面尊重文本的确切内容 - 我在谈论文本行下方的小图形部分 - 例如“ygq”等,例如在大写字母使用“YGQ”,但在显示文本时仍会计算。我试过了:

.button {
    height: 20px;
    line-height: 20px;
}

<div class="button">My text</div> 
<div class="button">MY TEXT</div> 

而另一种方式

.button {
    height: 20px;
    display: flex;
    align-items: center;
}

<div class="button"><p>My text</p></div> 
<div class="button"><p>MY TEXT</p></div> 

我使用padding属性,当我确定时,不会显示该行下方的图形。有没有办法,如何根据文本的确切内容对齐文本?

问题How do I vertically center text with CSS?没有回答这个,因为解决方案是基于“行高”,如我在我的问题中提到的那样仍然需要计算下面的图形。

css text vertical-alignment
3个回答
0
投票

要使元素垂直居中,可以将display:flex与父容器.button一起使用,并将margin:auto应用于子元素。

 

.button{
    height: 150px;
    display: flex;
    background-color: aliceblue;
 }
.button p {
   margin: auto;
}
    <div class="button">
        <p>My text</p>
    </div>

0
投票

试试这个::

.button{
  display: flex;
  justify-content: center; /* align horizontal */
  align-items: center; /* align vertical */
}
<div class="button">
        <p>My text</p>
    </div>

-1
投票

您可以使用位置和变换将项目垂直对齐在另一个项目内

.button {
    position: relative;
}

.button p {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);

    /* For horizontal align */
    width: 100%;
    text-align: center;
}
    <div class="button">
        <p>My text</p>
    </div>
© www.soinside.com 2019 - 2024. All rights reserved.