【问题标题】:Why isn't this vertical centring trick working?为什么这个垂直居中技巧不起作用?
【发布时间】:2014-01-17 17:21:51
【问题描述】:

我试图在另一个 div 中垂直居中三个 div。我正在尝试技术described here on CSS Tricksdemonstrated here: 在容器之前添加一个伪元素:

.author-page-box:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  margin-right: -0.25em;
}

并给子 div 中间的垂直对齐:

.aub-img,
.aub-main,
.aub-contact-links {
  display: inline-block;
  vertical-align: middle;
}

但是我试图使这项工作不起作用!谁能告诉我哪里出错了? (JSFiddle)。

=====================

编辑:

这是我的布局,不是垂直居中的!

【问题讨论】:

  • 我很难确定为什么,但你的前元素没有高度。添加边框时更容易发现:jsfiddle.net/aCv9e/10
  • 嗯,你说得对,很奇怪!当我为其添加特定高度时,一切都居中。
  • 每当你使用百分比高度时,你必须问自己“到底是什么百分比?”在这种情况下,您尝试使用没有设置高度的盒子的百分比,只有最小高度。这在 CSS 中不起作用。盒子必须在容器上明确设置高度才能使用百分比高度
  • 啊啊啊啊!谢谢Alochi,这很清楚。当我向 .author-page-box 添加显式高度时,它会居中。我很惊讶 100% 没有考虑容器的最小高度。
  • @cimmanon - CSS 2.1 spec 表示对于百分比高度“如果包含块的高度没有明确指定(即,它取决于内容高度),并且这个元素不是绝对定位的,值计算为'auto'。”即,如果父元素的高度“只是隐含的”,那么该高度的百分比将不起作用。

标签: html css


【解决方案1】:

这样的? Vertically Centered Example

你有正确的想法,但正在添加

vertical-align: middle;

到错误的 div。

【讨论】:

  • 感谢 CJdriver,这似乎是答案!
猜你喜欢
  • 1970-01-01
  • 2016-06-23
  • 2011-05-26
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多