html - 不能在一个 div 中垂直居中多个 div,并在其中垂直居中它们的元素

标签 html css divider

我对 HTML/CSS 还很陌生,并试图理解其中涉及的很多概念。我正在尝试将 2 个 div 在一个较大的 div 中垂直居中,并将这些 div 中的元素居中。

HTML:

<html>
<head>
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
    <div id="MainDiv">

      <div id="SubDiv">
        <form method="POST">
            <input type="text" name="example1" class="Text">
            <input type="text" name="example2" class="Text">
            <input type="submit" value="Go"> <br>
        </form> <br/>
      </div>

      <div id="SubDiv">
          <input type="button" value="Button 1"/>
          <input type="button" value="Button 2"/>
      </div>

  </div>
</body>

CSS:

#MainDiv 
{
    width: 60%;
    height: 30%;
    margin: auto;
    position: absolute;
    top: 0; left: 0; bottom: 0; right: 0;
    text-align: center;
    border:  1px solid black;
}

#SubDiv
{
    width: 90%;
    height: 45;
    margin: auto;
    border:  1px solid black;

}

.Text
{
    width: 40%;
}

You can see the result here: the main div completely centered, but I'm unable to control the vertical centering of anything else.

当然,我已经进行了大量搜索以试图修复此问题,但任何修复似乎都无济于事,或者把事情搞得更糟。如有任何帮助,我们将不胜感激。

最佳答案

为此你可能需要考虑 flexbox,它内置了垂直居中

这里是对 flexbox 的精彩介绍: http://flexboxin5.com/

关于html - 不能在一个 div 中垂直居中多个 div,并在其中垂直居中它们的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994460/

相关文章:

css - 获取具有不同背景颜色并延伸到屏幕边缘的两列

php - 自定义页面从模板下拉菜单中删除

java - 以编程方式添加垂直分隔线

javascript - 指针事件为 null 的元素上的“单击”(或替代方法)

javascript - 如何在重置表单时运行 JavaScript 代码?

javascript - jQuery photoResize 函数不起作用

css - 是否可以将 ShinyWidgets 中 progressBar() 的颜色更改为自定义颜色?

javascript - 模拟可移动分隔线 : Need to disable default dragging

matplotlib:多次使用 append_axes

html - 如何通过垂直中心居中 block ?