如何将一些文本垂直放置在圆形div的中心?

时间:2016-08-08 15:23:03

标签: html css

我正在尝试制作一个圆形的div,中间有一些文字。我可以在中间水平放置,很容易,但是我在垂直中心遇到了很多麻烦,我尝试过垂直对齐,填充,显示等,但它总是保持在顶部。

以下是令人讨厌的HTML:

<div class="widget">
    <p id='case'>{27 cases}</p>
</div>

这是该div的CSS:

.widget {
    background-color: #ff1122;
    color: yellow;
    width: 150px;
    height: 150px;
    border-radius: 100%;
    text-align: center;
    font-size: 24px;
    vertical-align: middle;
}

我正在尝试将文本精确地放在圆圈的中间。我怎么能这样做?

4 个答案:

答案 0 :(得分:0)

您需要添加line-height属性。使line-height等于圆的高度,在本例中为150px

line-height:150px;

&#13;
&#13;
.widget {
    background-color: #ff1122;
    color: yellow;
    width: 150px;
    height: 150px;
    border-radius: 100%;
    text-align: center;
    font-size: 24px;
    vertical-align: middle;
    line-height:150px;
}
&#13;
<div class="widget">
    <p id='case'>{27 cases}</p>
</div>
&#13;
&#13;
&#13;

如果你愿意使用flex-box,你也可以这样做。这适用于多行。

&#13;
&#13;
.widget {
    background-color: #ff1122;
    color: yellow;
    width: 150px;
    height: 150px;
    border-radius: 100%;
    text-align: center;
    font-size: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
&#13;
<div class="widget">
  <p id='case'>This is multiple line text.</p>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

然后让你的圆圈显示:table;

.widget {
    background-color: #ff1122;
    color: yellow;
    width: 150px;
    height: 150px;
    border-radius: 100%;
    text-align: center;
    font-size: 24px;
    vertical-align: middle;
    display:table;
    line-height:150px;
}
p {
    display: table-cell;
    vertical-align: middle;
}
<div class="widget">
    <p id='case'>{27 cases}</p>
</div>

答案 2 :(得分:0)

看看这个:

&#13;
&#13;
.widget {
    background-color: #f12;
    color: yellow;
    width: 150px;
    height: 150px;
    border-radius: 100%;
    text-align: center;
    font-size: 24px;
}

.widget * {
  display:inline-block;
  vertical-align: middle;
}

.widget::before {
  content: "";
  display:inline-block;
  width: 0;
  height: 100%;
  vertical-align: middle;
}
&#13;
<div class="widget">
    <p id='case'>{27 cases}</p>
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

制作圈display: table;而内圈pdisplay: table-cell;vertical-align: middle;

.widget {
    background-color: #ff1122;
    color: yellow;
    width: 150px;
    height: 150px;
    border-radius: 100%;
    text-align: center;
    font-size: 24px;
    display: table;
}

.widget p {
    display: table-cell;
    vertical-align: middle;
}
<div class="widget">
    <p id='case'>{27 cases}</p>
</div>