html - 与其容器和窗口相关的 div 位置

标签 html css

我无法设置 div 的样式,使其水平位于其容器的中间(宽度)并垂直位于窗口高度的中间。

最佳答案

你的意思是这样的吗?

body, html { height: 100%; margin: 0; padding: 0; }

div { padding: 1em; box-sizing: border-box; }

.parent {
  width: 50%;
  background: lightblue;
  border:1px solid blue;
}

.child {
  width: 50%;
  background: lightpink;
  border:1px solid red;
  margin: 0 auto;
  top: 50vh;
  position: relative;
  transform: translateY(-100%);
}
<div class="parent">
  <div class="child">middle</div>
</div>

jsFiddle:https://jsfiddle.net/azizn/pxsL7usy/

逻辑:

div 在其父级/容器内水平居中非常简单,我们只需定义一个 width 并添加 margin: 0 auto

要使元素垂直位于视口(viewport)中心,您可以使用 CSS 视口(viewport)单位,在本例中为 vh,即视口(viewport)高度。您应用了一个非静态的position(如relativeabsolutefixed)和一个top 50vh 的值将 div 偏移到视口(viewport)的一半。然后添加 transform: translateY(-100%) 以从顶部偏移量减少元素的高度。

关于html - 与其容器和窗口相关的 div 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36964094/

相关文章:

html - Bootstrap 的网格 : elements with different heights

javascript - 简单的 Javascript 画廊

javascript - 如何将 props 发送到组件以响应条件?

javascript - 无法让我的 Javascript 输出来填充 HTML 元素

php - 响应式图像和文本对齐

html - Bootstrap 导航栏不适应容器

php - 如何自定义 WordPress 中的 Subscribe2 按钮外观?

jquery - 使用 div 作为与其他内容重叠的下拉菜单?

css - CSS 样式问题和带有按钮的选择框

css - 将 div 标签注入(inject)每个 <a> 链接