Don*_*mmy 5 html css html5 css3
如果我创建一个div(在页面的顶部)有一个margin-top: 10px,那么一个绝对定位的div(在更高的z-index和div 之外以及div的父级之外)开始不是在top: 0px但是在10px!
为什么是这样?简单地删除position: relative正文修复了所有内容(但导致我的代码中的其他内容出现问题 - 我需要相对定位的身体).
http://jsfiddle.net/afv3gze7/1/
问题代码:
<!DOCTYPE html>
<html>
<head>
<style>
html
{
position: relative;
min-width: 100%;
height: 100%;
min-height:100%;
}
body
{
min-width: 100%;
min-height:100%;
font-size: 100%;
}
.outer
{
position: relative;
top: 0em;
left: 0em;
width: 100%;
height: 100%;
background-color: #ffffff;
}
.overlay
{
position: absolute;
top: 0px;
left: 0em;
width: 100%;
height: 100%;
background-color: #000000;
-moz-opacity: 0.50;
-khtml-opacity: 0.50;
-webkit-opacity: 0.50;
opacity: 0.50;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha"(Opacity=50);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
filter:alpha(opacity=50);
z-index: 6;
display: none;
}
.inner
{
position: relative;
width: 100%;
border: none;
margin: 0em;
padding: 0em;
margin-top: 3.875em;
overflow: hidden;
z-index: 0;
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">s</div>
</div>
<div class="overlay" style="display: block;"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
CSS就是这么做position: relative的。它将元素从通常渲染的位置移动,并留下它通常占据的空间。这里有更多关于相对定位的内容。
如果必须保留position: relativebody 元素,请将margin-top.inner 类的属性更改为padding-top:
.inner
{
position: relative;
width: 100%;
border: none;
margin: 0em;
padding: 0em;
/*margin-top: 3.875em;*/
padding-top: 3.875em;
overflow: hidden;
z-index: 0;
}
Run Code Online (Sandbox Code Playgroud)