Flexbox项目不在浏览器窗口中

Amm*_*sfi 5 html css margin viewport

建立网站时遇到问题;是有些项目不在屏幕上。

以下是演示该问题的简单代码。在这里,divID为的name-h是消失的元素:

html, body {
  width: 100%;
  height: 100%;
}

#container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-content: center;
  height: 100%;
}

#name-h {
  font-size: 34px;
  margin-bottom: 450px;
}
Run Code Online (Sandbox Code Playgroud)
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
</head>

<body>
  <div id="container">
    <div id="name-h">
      <p id="first-name">FirstNmae</p>
      <p id="last-name">LastName</p>
    </div>

    <div id="links">
      <p class="link"><a href="">Resume</a></p>
      <p class="link"><a href="">Portfolio</a></p>
      <p class="link"><a href="">Blog</a></p>
    </div>
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

  • 这个问题是什么原因造成的?

  • 我该如何解决?

编辑1

原来,我在原始问题中提供了一些错误的结论,因此我对问题进行了编辑以删除它们。
--

编辑2(重要说明)

我知道的是html增加高度以包含其元素,并且当其高度变得大于屏幕时,会出现滚动条,对吗?为什么我的情况没有发生?为什么连我分配height: 100%htmlbody#container
--

编辑3(是flexbox原因吗?)

我认为Flexbox可能是问题的原因:如果仅从上面的代码中删除 display: flex;,一切都会按预期进行。我认为flexbox的行为可能像是绝对定位的元素,这会导致其项目超出屏幕。你怎么看?
--

编辑4

这是带有伪文本的示例:link。请注意,实际文本以“ Lorem ipsum dolor sit amet,consectetuer adipiscing elit”开头,而由于问题,显示的文本以其他内容开头。
--

编辑5

我正在使用html, body { height: 100%; width: 100%}#container {height: 100%;}以便将flex的内容相对于整个视口居中,而不仅是flex本身。

Raj*_*uri 1

你已经声明了容器的高度,它也是一个弹性盒子height:100%;,并给了margin-bottom:450px;你的内部 div#name-h

这可能是导致问题的原因。尝试改变容器的高度height:auto;

希望这有帮助。