插件窝 干货文章 Flex布局下如何让Body高度100%并垂直居中显示内容?

Flex布局下如何让Body高度100%并垂直居中显示内容?

居中 视口 body content 357    来源:    2025-03-19

在Flex布局中,要让body的高度占满整个视口(100%),并且让内容垂直居中显示,可以按照以下步骤进行设置:

1. 设置htmlbody的高度为100%

首先,确保htmlbody元素的高度都设置为100%,这样body才能占满整个视口。

html, body {
  height: 100%;
  margin: 0; /* 去除默认的margin */
}

2. 使用Flexbox布局

接下来,将body设置为一个Flex容器,并使用Flexbox的属性来实现内容的垂直居中。

body {
  display: flex;
  justify-content: center; /* 水平居中 */
  align-items: center; /* 垂直居中 */
}

3. 确保内容容器的高度和宽度

如果你希望内容容器(例如一个div)也占满整个视口,可以设置其高度和宽度为100%。如果不需要占满整个视口,可以忽略这一步。

.content {
  width: 100%; /* 可选,根据需要设置 */
  height: 100%; /* 可选,根据需要设置 */
}

完整代码示例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox Vertical Centering</title>
  <style>
    html, body {
      height: 100%;
      margin: 0;
    }

    body {
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: #f0f0f0; /* 可选,背景颜色 */
    }

    .content {
      text-align: center; /* 可选,内容水平居中 */
    }
  </style>
</head>
<body>
  <div class="content">
    <h1>Hello, World!</h1>
    <p>This content is vertically and horizontally centered.</p>
  </div>
</body>
</html>

解释

  • html, body { height: 100%; }:确保body占满整个视口高度。
  • body { display: flex; justify-content: center; align-items: center; }:将body设置为Flex容器,并使用justify-contentalign-items属性来水平和垂直居中内容。
  • .content { text-align: center; }:可选,用于在内容容器内水平居中文本。

通过这种方式,你可以轻松地在Flex布局中实现body高度100%并垂直居中显示内容。