请教下 flex 下垂直居中的问题,body 如何 100%?

我有一个 html 页面,全部代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
<title>Blog</title>
<style type="text/css">
* {margin:0;padding:0;border:0;}
body {width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;font-size: 20px;}
.blog {width:90%;height:40vh;}
h1{font-size:44px;}
p{padding:10px 0;}
@media only screen and (max-width: 812px) {
  .blog {
    width: 80%;
    height:60vh;
  }
}
</style>
</head>
<body>
<div class="blog">
  <h1>Blog</h1>
  <p>12344</p>
  <p>45677</p>
  <p>56789</p>
  <p>98213123213213</p>
</div>
</body>
</html>

我想实现的是在所有的设备上(pc端和移动端),整个 body 的高度是 100% 满屏,blog 这个 div 垂直居中显示。

我现在这个在 pc 端还正常,可是在移动端右侧会出现滚动条,body 并不是 100% 高度。

请指导下,谢谢

阅读 1.6k
2 个回答

你看看这个:

* * {
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
}

html {
  height: 100%;
}

body {
  width: 100%;
  min-height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  margin: 0;
}

.blog {
  width: 90%;
  height: 40vh;
}

h1 {
  font-size: 44px;
}

p {
  padding: 10px 0;
}

@media only screen and (max-width: 812px) {
  .blog {
    width: 80%;
    height: 60vh;
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题