【问题标题】:Vertically center text. Display Table. Div height not increasing垂直居中文本。显示表。 div高度不增加
【发布时间】:2016-09-20 20:17:59
【问题描述】:

实际上,我正在练习在 div 中垂直居中文本。网上看了很多说明。但喜欢我可以将容器 div 显示为表格,然后将其中的子 div(在本例中为 .middle)显示为表格单元格的那个。有用。但唯一的问题是,每当我尝试将 .container div 高度设置为 100% 时,div 都会挤压以将自身包裹到文本行。但是,当我明确定义 .container div 的高度时,我能够获得所需的宽度,并且文本完全居中。

谁能解释这是为什么?请参考图片截图以更好地理解这一点。

 html,
 body {
   height: 100%;
   width: 100%;
   left: 0px;
   top: 0px;
   margin-top: 0px;
   margin-right: 0px;
   margin-bottom: 0px;
   margin-left: 0px;
   background-color: rgba(0, 0, 153, 1);
 }
 .container {
   display: table;
   width: 100%;
   height: 100%;
 }
 .middle {
   display: table-cell;
   vertical-align: middle;
 }
 .inner {
   display: table;
   margin: 0 auto;
 }
<div class="container">

  <div class="middle">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.

  </div>
</div>

【问题讨论】:

  • 为了使用% 作为高度值,您还需要设置父元素的值。在这种情况下,如果你想要窗口的全高html and body 标签也必须是100%;或者容器的父级必须有一个固定的高度。
  • 编辑了你的帖子并将你的代码变成了一个 sn-p .. 我不明白你的问题,它按预期工作

标签: html css


【解决方案1】:

父容器也应该明确说明其高度,以便能够在子容器上使用percentage。否则它不知道100% 值指的是什么,除非你给position: absolute; 并且你将不同的容器(有高度)设置为position: relative;

【讨论】:

  • 好的,我现在明白了。在这种情况下,body 的高度需要以像素为单位进行定义。但是如果我不想以像素为单位明确定义高度怎么办? (如果我打算添加一个垂直流动到 2-3 页的连续文本)我希望子 div 和父 div 水平扩展。并且还保留了中心文本功能!
  • 不必在pixels 中说明。您可以使用%vh \ vw。在您的情况下,您可以尝试使用min-height
  • 对不起,我忘记在上面的 css 代码中粘贴正文部分。现在看代码,body的高度定义为100%
  • @serious_coder 你也需要html 标签的值
  • 不知道如何发布小提琴。会感谢某人的帮助。但已将上述代码更新为 html 设置为高度 100%
猜你喜欢
  • 2016-02-24
  • 2011-06-12
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2014-05-26
  • 1970-01-01
  • 2011-11-28
相关资源
最近更新 更多