首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用CSS在父元素中垂直居中<div>?

如何使用CSS在父元素中垂直居中<div>?
EN

Stack Overflow用户
提问于 2010-04-30 18:56:45
回答 14查看 411.6K关注 0票数 149

我正在试着做一个小的用户名和密码输入框。

我想问一下,如何垂直对齐div?

我所拥有的是:

代码语言:javascript
复制
<div id="Login" class="BlackStrip floatright">
   <div id="Username" class="floatleft">Username<br>Password</div>
   <div id="Form" class="floatleft">
   <form action="" method="post">
      <input type="text" border="0"><br>
      <input type="password" border="0">
   </form>
   </div>
</div>

如何使带有id、用户名和表单的div垂直对齐到中心?我试着说:

代码语言:javascript
复制
vertical-align: middle;

在CSS中使用id Login的div,但它似乎不起作用。任何帮助都将不胜感激。

EN

回答 14

Stack Overflow用户

发布于 2015-03-24 11:33:52

这可以用3行CSS来完成,并且可以兼容回(包括) IE9:

代码语言:javascript
复制
.element {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}

示例:http://jsfiddle.net/cas07zq8/

credit

票数 106
EN

Stack Overflow用户

发布于 2015-08-13 23:56:11

我来得太晚了,但这是我自己想出来的,这是我最喜欢的垂直对齐快速技巧之一。这非常简单,而且很容易理解发生了什么。

您可以使用div css属性在父:before的开头插入一个div,赋予它display:inline-blockvertical-align:middle,然后将这些相同的属性赋给子div。由于vertical-align用于沿直线对齐,因此这些内联div将被视为一条直线。

:before div设为height:100%,子级div将自动跟随并对齐到一条非常长的“线”的中间。

代码语言:javascript
复制
.parent:before, .child {
    display:inline-block;
    vertical-align:middle;
}
.parent:before {
    content:""; // so that it shows up
    height:100%; // so it takes up the full height
}

Here's a fiddle来演示我所说的内容。子div可以是任何高度,您永远不需要修改它的页边距/填充。

here's a more explanatory fiddle

如果你不喜欢:before,你可以手动放入一个div。

代码语言:javascript
复制
<div class="parent">
    <div class="before"></div>
    <div class="child">
        content
    </div>
</div>

然后将.parent:before重新分配给.parent .before

票数 13
EN

Stack Overflow用户

发布于 2010-04-30 19:00:02

如果你知道高度,你可以对负的margin-top使用绝对定位,如下所示:

代码语言:javascript
复制
#Login {
    width:400px;
    height:400px;
    position:absolute;
    top:50%;
    left:50%;
    margin-left:-200px; /* width / -2 */
    margin-top:-200px; /* height / -2 */
}

否则,就没有真正的方法可以仅使用CSS将div垂直居中

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2743989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档