如何垂直和水平居中高度未知的div元素

4

我尝试使用flexbox方法、表格方法和其他一些方法来垂直居中一个高度未知的div,但是我的div没有被正确地居中。我希望居中的div宽度为窗口宽度的50%或最小宽度为200像素。

.content {
  background-color: violet;
  min-width: 200px;
  width: 50%;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0px 1px 7px 1px rgba(0, 0, 0, 1);
}

.outer-container {
  display: table;
  width: 100%;
  background-color: violet;
}

.container {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}
<body>
  <div class="outer-container">
    <div class="container">

      <div class="content">
        <div class="title-class">
          Hello there
        </div>
      </div>
    </div>
  </div>
</body>

1个回答

6

使用flexbox,以下是你需要的所有代码:

HTML

<div class="container">
    <div class="content">
        <div class="title-class">Hello there</div>
    </div>
</div>

CSS

html, body { height: 100%; }

.container {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: violet;
    height: 100%;
}

.content {
    background-color: violet;
    width: 50%;
    text-align: center;
    box-shadow: 0px 1px 7px 1px rgba(0, 0, 0, 1);

}

演示

作为一个替代方法,这里有表格方法:


看起来当div达到一定高度时,div的顶部会被隐藏:https://jsfiddle.net/prettysweet/bsxng9g8/ - Autumn
1
@Autumn,是的,这是一个已知问题。解决方案请参见此处(参考Box #56)和此处 - Michael Benjamin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接