提问人:JonP. 提问时间:8/22/2023 最后编辑:Md. Rakibul IslamJonP. 更新时间:8/23/2023 访问量:43
为什么此代码(具有显示弹性)、对齐内容中心和对齐项目中心时未将元素水平和垂直对齐到中心?
Why is this code, with display flex, justify-content center and align-item center not aligning the elements to the center horizontally and vertically?
问:
我正在学习 JS,我所做的任务之一 - 是编写简单的 JS、HTML 和面向 CSS 的代码,只是为了帮助我学习 JS 并能够创建某些 JS Web 元素和项目,以便当我觉得我很好地掌握了 JS 时,我可以将它们应用于将来的大型项目。
无论如何,我正在使用:
display: flex;
align-items: center;
/* AND */
justify-content: center;
到我的CSS文件中的“正文”。这难道不应该使元素自动显示在中心、垂直和水平上吗?我没有任何其他CSS规则会弄乱它。反正我不这么认为。
但是,如果我检查元素并转到代码的最顶端 - HTML 代码,即:
然后(在 Inspect Element 中)将以下内容添加到 element.style
以及将其添加到我在 CSS 文件中声明的 body 标签中。<html lang="en">
height: 100%;
height: 100%;
噗,它有效。它将元素垂直居中到页面的中心。它已经水平居中。只是在我添加该代码之前不要垂直。但我认为我不应该在 那么
我在这里做错了什么?我正在使用 VSCode,然后预览带有 LifeServer 扩展名的 HTML 文件。我正在学习 Flexbox - 因为我最近才开始认真对待编码,希望最终找到一份工作(在线上学后)。<html lang="en"> element.style
这是我的代码,对不起,这篇文章很长。只是难以置信的困惑。
body {
background-color: #dbdbdb;
display: flex;
align-items: center;
justify-content: center;
}
.arrows {
height: 70px;
}
/* .left-arrow {
display: flex;
align-items: center;
justify-content: center; */
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 50px;
}
.top {
display: flex;
align-items: center;
gap: 50px;
}
<div class="container">
<div class="top">
<img src="images/left-arrow.svg" class="arrows arrow-left" alt="Left Arrow">
<div class="frame">
<div class="slider"></div>
</div>
<img src="images/right-arrow.svg" class="arrows arrow-right" alt="Right Arrow">
</div>
<div class="bottom"></div>
</div>
<script src="slider.js"></script>
slider.js 文件中没有代码。我还没有走到那一步。
我尝试将多个CSS类的高度从100%和100vh更改为100vh。老实说,我不确定发生了什么,我已经摆脱了一些 HTML 元素以及一些 CSS 元素。
答:
哦。。。每次我想在身体中居中某些东西时,我都会遇到问题......
问题是您的身体不会自动设置为视口高度的 100%,如果您的内容没有填充该高度,则需要在身体上手动设置,如下所示:height
body {
height: 100vh;
}
“vh”是大小的单位,表示“视口高度”。当我们将身体的高度设置为 100vh 时,这基本上意味着身体的高度应该是视口的 100%,有趣的是,如果您只是简单地将身体的高度设置为 100%,它是行不通的!这可能有点令人困惑,但我现在会解释它。执行此操作时:
body {
height: 100%;
}
这基本上意味着正文的高度应该是 PARENT ELEMENT(即 html 标签)的 100%,但重要的是要注意,如果您不为 html 标签设置高度,则高度将由子元素自动设置。
我希望我的解释足够好,以便您可以解决您的问题,如果您仍然有任何问题,请告诉我
评论
height