html - text-align :center doesn't work vertically in CSS, 我该如何解决这个问题?

标签 html css

我正在使用仅包含文本的 div。它使用绝对定位将自身置于使用相对定位的图像 div 之上。如果我使用,我可以在 CSS 中将 div 水平居中

div { 文本对齐:居中; 宽度:100%; }

但是当我尝试使用

将它垂直居中时

div { 文本对齐:居中; 高度:100%; }

它不垂直居中。我猜这是因为 text-align:center 只在水平方向指定。我怎么能解决这个问题?如果外部 div 是固定大小,但外部 div 不是固定大小,我已经看到了几个可行的解决方案。它是流动的,所以我需要它也能流畅地工作。我试过使用 top:50% 但我希望它完全居中......我很缺乏经验所以对我放轻松

最佳答案

如您所料,您是对的,text-align: center; 用于仅水平而不是垂直对齐文本/元素...所以如果您谈论对齐单行文本垂直比你需要使用 line-height,这将等于容器 height

Demo

div {
    height: 100px;
    width: 100px;
    border: 1px solid #f00;
    line-height: 100px;
    text-align: center; /* Forgot this in the demo */
}

如果你想垂直对齐整个元素,你可以使用 position: absolute; 我不建议你,而是使用 display: table-cell; 嵌套在 display: table; parent

Demo 2

div {
    height: 100px;
    width: 100px;
    border: 1px solid #f00;
    display: table;
}

span {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

关于html - text-align :center doesn't work vertically in CSS, 我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988402/

相关文章:

html - 页脚不在页面底部,而是在背景图像的底部

c# - 不使用javascript的textarea的maxlength属性

CSS - 使用媒体查询从其父元素中删除元素

html - 背景 slider

html - 视频框不会出现在 safari 中

html - 文本从内容中隐藏

html - 行内 block 空白修复不起作用

html - table td 在底部留下不需要的空间

html - 使用相同大小的图像创建小型图库

html - 如何在 fontawesome 方形图标内显示文本消息