Да, это связано с position: relative
. Я объясню, что происходит:
Ваш body
начинается в верхней части области просмотра и настолько высок, насколько высокий из его дочерних элементов подталкивает его, поэтому он растягивается вниз, чтобы соответствовать своим дочерним элементам, но не более того. Перед переключением #div1
- это старший ребенок. После переключения #div1
скрывается, поэтому остается только <i></i>
, а body
будет иметь очень низкую высоту.
Теперь, когда элемент имеет position: relative
, происходит одно: вы можете использовать на нем top
, left
, right
и bottom
, чтобы переместить его относительный туда, где он обычно был бы. В вашем <i></i>
есть position: relative
, а также bottom: 201px
, поэтому он перемещается на 201px. Обычно он находится в верхней части окна просмотра внутри body
. Когда он перемещается так далеко, он оказывается за пределами области просмотра, поэтому вы больше не можете его видеть.
Вы можете увидеть все это визуально, используя инструменты разработчика вашего браузера, например Page Inspector для Firefox или Chrome s DevTools .