垂直对齐此文本我缺少啥? [复制]

Posted

技术标签:

【中文标题】垂直对齐此文本我缺少啥? [复制]【英文标题】:What am I missing to vertically align this text? [duplicate]垂直对齐此文本我缺少什么? [复制] 【发布时间】:2018-02-15 05:40:24 【问题描述】:

我可以将line-height 设置为85px,它会垂直对齐它,但我并不总是知道元素有多高。我确定我在这里遗漏了一些简单的东西......但是我可以在 .content 类中修改什么以使文本垂直居中?

.tile 
  position: relative;
  width: 100px;
  height: 85px;
  display: inline-block;
  border: 1px solid red;

#container1 
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;


#container2 
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;


.content 
  margin: auto;
  height: 100%;
  vertical-align: middle;
  text-align: center;
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile">
<div id="container1">
  <div id="container2">
    <div class="content">Test</div>
  </div>
</div>
</div>

【问题讨论】:

Flexbox 一个选项? 【参考方案1】:

您可以像这样使用psuedo 元素:

.content:after 
  content: '';
  height: 100%;
  display: inline-block;
  vertical-align: middle;

请看下面的演示:

.tile 
  position: relative;
  width: 100px;
  height: 85px;
  display: inline-block;
  border: 1px solid red;

#container1 
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;


#container2 
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;


.content 
  margin: auto;
  height: 100%;
  vertical-align: middle;
  text-align: center;

.content:after 
  content: '';
  height: 100%;
  display: inline-block;
  vertical-align: middle;
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile">
<div id="container1">
  <div id="container2">
    <div class="content">Test</div>
  </div>
</div>
</div>

【讨论】:

这很完美,你能解释一下它为什么/如何工作吗? 处理 inline 元素时垂直居中的 hacks 之一... 对我来说已经足够好了! :)

以上是关于垂直对齐此文本我缺少啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

div的水平和垂直对齐

python 填充缺少的列以对齐行。

我安装了Linux版的wps,为啥提示缺少系统字体?我打开它一看,啥宋体楷体的都不见了,就剩下

从表单输入多行时缺少或未对齐的值 - PHP/MYSQLI

无论我尝试啥,我都无法垂直对齐这个[关闭]

textarea 标签垂直对齐:中间