我有多个嵌套div's
,它们遵循包含一些内容和页脚信息的文档流程。每个div
都有id
,名为content
的{{1}}使用width
css
属性约束800px
。
我遇到的问题是,当我展开网页时,div
content
及其所有嵌套div's
仍然位于网页的左上角,{{1} } 30px
。我希望margin
content
及其所有嵌套div
位于div's
div
的中心。我认为我可以通过应用main
样式css
来实现这一目标。我附上了一张图片来试图说明我的意思。第一张图片展示了我网站的行为。
修改
这是我的代码。如果需要,我可以提供更多:
margin 0 auto;
答案 0 :(得分:1)
此解决方案仅在#content
小于#main
时才有效,这基本上就是屏幕尺寸。
首先通过提供#main
,html
和body
一个#main
来确保height: 100%
占据屏幕高度的100%。< / p>
要将#content
置于#main
的水平和垂直中心,它将绝对定位。要让#main
作为参考框架,将position: relative
添加到#main
。 #content
获得top: 50%
和left: 50%
,使#content
的左上方恰好位于#main
的中心。 #content
得到一个transform: translate(-50%, -50%)
,将其宽度的50%向左推,将其高度的50%推到顶部。这使它完全居中。
html,
body {
height: 100%;
}
#main {
position: relative;
height: 100%;
}
#content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.box {
border: 1px solid #c66;
background-color: #f99;
width: 300px;
height: 300px;
}
&#13;
<div id="main">
<div id="content"">
<div class="box"></div>
</div>
</div>
&#13;
答案 1 :(得分:0)
margin: 0 auto;
不会工作,因为如果你想一想,如果div没有宽度,浏览器将如何计算两边的距离?
你也可以将中间的div与text-align: center;
对齐,但对于垂直居中有几种方式
position: absolute;
技巧或使用vertical-align: middle
,但这需要display: inline-block;
,否则无法使用。