即使我更改了窗口大小,如何将 div 居中放置在页面中间?

Ala*_*anH 4 html css css-position vertical-alignment centering

我在这里尝试了所有解决方案,但没有一个奏效。无论窗口大小如何,我都想水平和垂直居中。

注意:我container按照我想要的方式拥有我的div。它环绕着其他几个 div。如果我调整此链接建议的更改,我的容器 div 就会搞砸。我不是在尝试让它有反应。它是一个固定大小(想想一个图像),我只希望它始终位于窗口的中心,无论窗口大小如何。

这是我所拥有的:

* {
  margin: 0;
  padding: 0;
}
#container {
  background-color: black;
  border-radius: 10px;
  padding: 5px;
  display: block;
  margin: auto;
  /* changed to auto, didn't make a difference*/
  border-width: 1px;
  border-color: black;
  border-style: solid;
  position: absolute;
}
.light {
  height: 100px;
  width: 100px;
  display: block;
  border-radius: 50%;
  margin: 10px;
  border-width: 5px;
  background-color: grey;
}
Run Code Online (Sandbox Code Playgroud)
<body>
  <div id="container" onclick="changeColor()">
    <div id="green" class="light"></div>
    <div id="yellow" class="light"></div>
    <div id="red" class="light"></div>
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

kuk*_*kuz 5

也许它绝对不适合您container,因此body高度为零。

  1. 添加height: 100%htmlbody第一。

  2. 使用居中方法对absolutely 定位的元素使用transformto container

    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    
    Run Code Online (Sandbox Code Playgroud)

让我知道您对此的反馈。谢谢!

top: 50%;
left: 50%;
transform: translate(-50%, -50%);
Run Code Online (Sandbox Code Playgroud)
html,
body {
  height: 100%;
}
* {
  margin: 0;
  padding: 0;
}
#container {
  background-color: black;
  border-radius: 10px;
  padding: 5px;
  display: block;
  margin: 0 auto;
  border-width: 1px;
  border-color: black;
  border-style: solid;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.light {
  height: 100px;
  width: 100px;
  display: block;
  border-radius: 50%;
  margin: 10px;
  border-width: 5px;
  background-color: grey;
}
Run Code Online (Sandbox Code Playgroud)