При применении position: fixed
элемент вытягивается из естественного потока страницы.Это заставляет все другие элементы игнорировать это положение элементов.Вот почему статический div
лежит ниже фиксированного div
.
Фиксированная позиция div
относится к родительскому элементу, который в данном случае равен body
.Поскольку вы не дали ему никаких left
top
right
bottom
данных о положении, они просто ведут себя как top: 0; left: 0;
, что оказывается точно таким же положением, где ваша статическая div
лежит ниже.
Чтобы решить эту проблему, я бы просто добавил то же количество padding-top
к body
, что и фиксированное значение div
.
Подробнее об этом можно прочитать здесь: https://developer.mozilla.org/en/CSS/position
Кстати, div
естественно ведет себя так, как если бы вы дали ему display: block
.На самом деле, это единственный стиль по умолчанию.