【问题标题】:How to vertically center text when using the :before modifier in CSS?在 CSS 中使用 :before 修饰符时如何使文本垂直居中?
【发布时间】:2022-01-26 17:37:57
【问题描述】:

这是 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:"\2022";
    margin-right: 0.5rem;
    color: yellow;
    font-size: 48px;
}

Here's a CodePen showing the issue

我有一个div 标记,我正在使用:before 修饰符在文本前注入一个项目符号。当子弹尺寸增加时,垂直居中不起作用。当子弹很小(太小)时,它都是居中的。我错过了一些东西。我错过了什么?

【问题讨论】:

  • 男孩,如果 CSS/HTML 标准只是... ...
  • 你应该使用 flex。在引入 flex 之前,垂直居中总是存在问题。

标签: html css vertical-alignment vertical-text


【解决方案1】:

你可以使用弹性盒子。

.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:"\2022";
        margin-right: 0.5rem;
        color: yellow;
        font-size: 48px;
    }

【讨论】:

  • 谢谢。玩完之后,inline-flex 工作得更紧密一些。感谢您的想法!
猜你喜欢
  • 2012-02-10
  • 2011-02-25
  • 2016-07-12
  • 2015-12-03
  • 2013-02-14
  • 1970-01-01
相关资源
最近更新 更多