Если у меня есть div (вверху страницы), то есть margin-top: 10px
, а затем абсолютно позиционированный div (то есть на более высоком z-index и вне этого div и вне этого родителя div) начинается не с top: 0px
, но на 10px
!Почему создание стиля тега тега «позиция: относительное» приводит к тому, что абсолютный позиционный div начинается ниже?
Почему это? Просто удаление 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>
Поскольку абсолютно позиционированные элементы расположены относительно их ближайшего расположенного предка. – j08691
Но @ j08691 ближайший позиционированный предок - тело. –
Возможный дубликат [Почему не \ 'top: 0 \' работает над абсолютно позиционированным элементом относительно тела?] (Http://stackoverflow.com/questions/33594788/why-doesnt-top-0-work-on -absolutely-position-element-relative-to-body) –