在 CSS 中使用 :before 修饰符时如何使文本垂直居中?

How to vertically center text when using the :before modifier in CSS?

这是 HTML 中的另一个“我如何垂直居中”的问题。这是使用 :before 修饰符时的情况。

HTML

<div style="border: 1px solid blue">
  <div class="status-yellow">vertically center me</div>
</div>

CSS

.status-yellow {
    display: inline-block;
    padding: .35em .65em;
    font-size: .75em;
    font-weight: 400;
    line-height: 1;
    color: #000;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    text-transform: uppercase;
    background-color: #fff;
}

.status-yellow:before {
    display: inline-block;
    content:"22";
    margin-right: 0.5rem;
    color: yellow;
    font-size: 48px;
}

Here's a CodePen showing the issue

我有一个 div 标签,我正在使用 :before 修饰符在文本前插入项目符号。当子弹变大时,垂直居中不起作用。当子弹很小(太小)时,它全部居中。我错过了什么。我错过了什么?

你可以使用 flexbox。

.status-yellow {
    display: inline-block;
    padding: .35em .65em;
    font-size: .75em;
    font-weight: 400;
    line-height: 1;
    color: #000;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    text-transform: uppercase;
    background-color: #fff;
    display:flex;
    align-items:center;/*for vertical align*/
    justify-content:center;/*for horizontal align*/
}

.status-yellow:before {
        display: inline-block;
        content:"22";
        margin-right: 0.5rem;
        color: yellow;
        font-size: 48px;
    }