css - div 在垂直和水平方向上居中对齐

标签 css

我有两个 div,一个在另一个里面。我已经为两个 div 设置了一些边框,并且我希望两个 div 在水平和垂直方向上都位于页面的中心。我已经看到类似问题的解决方案,但无法解决我的问题。也请分享我可以从中了解定位的好资源,即相对绝对深度。

下面是我的 HTML 代码:

<!DOCTYPE html>
<style type="text/css">
    .outer {
        color:black;
        width: 400px;
        height:400px;
        border: 100px solid;
        border-radius:100%;
        border-color: red blue green yellow;
        position: static;
        margin: auto  auto auto auto;
        top:50%;
    }
    .inner{
        color:black;
        width: 100px;
        height:100px;
        border: 50px solid;
        border-radius:100%;
        border-color: red transparent green transparent;
        position: relative;
        top:50%;
        margin: -50px auto auto auto;
    }
</style>
<html>
    <body>
        <div class="outer">
            <div class="inner">
            </div>
        </div>
    </body>
</html>

最佳答案

如果您知道两个框的大小,并且它们不会改变,您可以使用这个:

.outer {
  color:black;
  width: 400px;
  height:400px;
  border: 10px solid;
  border-color: red blue green yellow;
  position: absolute;
  margin: -200px  auto auto -200px;
  top:50%;
  left: 50%;
}
.inner{
  color:black;
  width: 100px;
  height:100px;
  border: 5px solid;
  border-color: red transparent green transparent;
  position: absolute;
  top:50%;
  left: 50%;
  margin: -50px auto auto -50px;
}​

注意我去掉了边框半径,缩小了边框尺寸,让点更清晰。

基本上,您可以使用相对单位 (%) 的绝对定位,但使用固定的负边距,即框大小的一半。

See the JS Fiddle

关于css - div 在垂直和水平方向上居中对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208690/

相关文章:

css - 格式化只影响显示 block 的右侧

html - Django 可以从静态文件加载图像但不能使用 css

css,当你垂直居中内联 block 元素时

javascript - ajax第二次加载缓存

css - 什么是 span-element 的替代品?

html - 图像悬停-HTML CSS

javascript - 如何在悬停时出现/消失的情况下将第三级添加到我的CSS菜单

javascript - 在CSS中动态更改内容

html - 在 Internet Explorer 11 中使用 'display:block'

css - 如何用css删除悬停效果