Да, было бы здорово, что мы могли бы перейти от статического положения к абсолютному, но реально я не думаю, что это произойдет в ближайшее время (если вообще когда-либо). Я был бы счастлив просто иметь возможность перейти с height: px
на height: auto;
.
Я предполагаю, что существует некоторый компромисс, когда браузер должен выполнить вычисление для интерполяции между двумя «несовместимыми» значениями. Итак, если вы установите height: 20px
, а затем захотите перейти на height: auto
, браузер должен будет представить , что произойдет, если у него будет автоматическое определение местоположения, и вычисления могут стать интенсивными. Он также не реализован в jQuery, так что я думаю, что он нарушает некоторые тесты, или он просто хакерский.
Если вы разрабатываете свой CSS, зная, что вам понадобится абсолютное положение, чтобы всегда ссылаться на окно, тогда javascript значительно проще: вам просто нужно переключиться между его смещением и 0, 0.
$(".hover").on("mouseover", function(){
$(this).css({
top: $(this).offset().top * -1,
left: $(this).offset().left * -1
})
});
http://jsfiddle.net/crUFY/
Более надежное решение будет включать клонирование элемента dom и сокрытие оригинала, а затем анимирование клона в верхней части окна. Таким образом, вы можете применить положение: относительно родительских элементов.