我有一个问题就是在另一个全屏div中垂直和水平居中div。子div的宽度和高度是固定的。
以下是代码:
html, body {
height: 100%;
margin: 0;
}
#header {
overflow: hidden;
width:100%;
height: 100%;
background: orange;
background-size:cover;
-webkit-background-size:cover;
display: table;
}
#wrap {
height: 200px;
width: 500px;
background:white;
margin:0px auto;
}

<div id="header">
<div id="wrap">
<h1>Header</h1>
<div id="some-text">Some text some text some text some text</div>
</div>
</div>
&#13;
答案 0 :(得分:5)
您可以尝试绝对居中:
#wrap {
/* Absolute centering: */
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
margin: auto;
/* It needs a height and a width: */
height: 200px;
width: 500px;
}
html, body {
height: 100%;
margin: 0;
}
#header {
overflow: hidden;
width:100%;
height: 100%;
background: orange;
background-size:cover;
-webkit-background-size:cover;
display: table;
}
#wrap {
height: 200px;
width: 500px;
background:white;
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
margin: auto;
}
&#13;
<div id="header">
<div id="wrap">
<h1>Header</h1>
<div id="some-text">Some text some text some text some text</div>
</div>
</div>
&#13;
答案 1 :(得分:1)
只需像这样更改您的CSS:
html, body {
width:100%;
height: 100%;
margin: 0;
}
#header {
overflow: hidden;
width:100%;
height: 100%;
background: orange;
background-size:cover;
-webkit-background-size:cover;
}
#wrap {
height: 200px;
width: 500px;
background:white;
margin:0px auto;
position:absolute;
top:50%;
left:50%;
margin-top:-100px;
margin-left:-250px;
}
html, body {
width:100%;
height: 100%;
margin: 0;
}
#header {
overflow: hidden;
width:100%;
height: 100%;
background: orange;
background-size:cover;
-webkit-background-size:cover;
}
#wrap {
height: 200px;
width: 500px;
background:white;
margin:0px auto;
position:absolute;
top:50%;
left:50%;
margin-top:-100px;
margin-left:-250px;
}
&#13;
<div id="header">
<div id="wrap">
<h1>Header</h1>
<div id="some-text">Some text some text some text some text</div>
</div>
</div>
&#13;
<强>解释强>
这是使用固定宽度元素时使用CSS的绝对居中元素最常用和最古老的方法之一。它只包括将position:absolute
应用于元素以及顶部和左侧50%
值。虽然这听起来应该可以单独使用,但元素具有自己的属性,例如宽度和高度,因此我们需要应用margin-left
和margin-top
等于元素大小的一半(在这种特殊情况下,100px和250px)