html - 垂直对齐固定 div 内的动态文本

标签 html css alignment

我有一个高度为 200 像素的 div。我的文字有时是一行,有时是两行。当文本的高度发生变化时,我如何将文本居中?看起来很简单,但我无法在任何地方找到解决方案。

现在我的 html 是 <div class="class1"><?php echo $variable; ?></div>

我的CSS是

.class1 {
display:inline-block;
position:absolute;
left:235px; //Unimportant to question
height:200px;
width:415px;
top:15px;
text-align:center;
font-size:36px;
vertical-align:middle;
}

虽然这并没有使它居中。我试过使用 line-height:200px; ,尽管当我的文本变成两行时,下一行比第一行低 200 像素。

最佳答案

您可以添加一个虚拟元素(或使用 :before)并将其高度设置为 100%。然后,使用内联 block 和 vertical-align,您可以垂直居中:

.vertical-center:before, .vertical-center > * {
    display: inline-block;
    vertical-align: middle;
}
.vertical-center:before {
    height: 100%;
    content:'';
}

Demo

关于html - 垂直对齐固定 div 内的动态文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648993/

相关文章:

javascript - 工具提示中的图标

html - 如何将子元素覆盖在父元素上

css - 如何将 Bootstrap 列内的内容向右或向左移动?

emacs - 是否有一个不错的emacs模式用于显示和编辑由分隔符分隔的巨大文件?

javascript - 滚动条影响div的宽度

html - 如何使用 CSS 样式滚动特定的 div 标签?

java - 是否可以使用服务器端java程序用angularjs脚本生成html文件?

php - css 有一个列表框,我需要它来选择既不会将文本颜色更改为事件或非事件、焦点或未焦点。它点击添加,点击添加

Jquery砌体: Incorrect gutters until window is resized

css - 如何水平对齐裁剪元素?