Когда я смотрю на вашу ссылку, кажется, что проблема возникает из-за чего-то другого: вы устанавливаете границы на .7px и по какой-то причине то, как браузер рендерит, заставляет вещи перемещаться вверх / вниз на 1px при наведении курсора.Я не совсем уверен, что из-за того, что .7px когда-либо будет округляться до 1px, поскольку в браузере нет такой вещи, как частичный пиксель, но если вы измените его на 1px вместо .7, движение останавливается, по крайней мере, в браузере Chrome на моем MacBook Pro.Причина перемещения, вероятно, связана с тем, что браузер пересчитывает абсолютные и относительные позиции этих элементов, когда они добавляются / удаляются с дисплея, и (что-то вроде предположения здесь ...), пока .7 округляется до 1, .7 на обоих так или иначе становится 1.4 и округляется вниз, когда положение обоих элементов принимается во внимание ... или некоторая схожая странность вычисления.Но да, использование только 1px границ вместо .7px, вероятно, сделает s = вашу жизнь проще: -)
В общем, вот некоторая информация, которая, как я изначально думал, будет применима, которая может помочь для дальнейшего использования в подобных ситуациях.:
Когда вы изменяете непрозрачность, элемент, который становится видимым / невидимым, все равно будет занимать место на странице - это означает, что окружающие элементы будут позиционировать себя так, как если бы этот элемент занимал пространство, потому что этопросто прозрачныйпереключение дисплея: нет;фактически удаляет элемент для потока документов, поэтому элементы вокруг него действуют так, как будто его там нет - когда он возвращается, они все перемещаются, чтобы освободить место для него.Если вы не хотите использовать прозрачность, но хотите, чтобы элемент продолжал занимать место, когда он скрыт, вы можете переключаться между visibility:hidden
и visiblity:visible
Хорошее объяснение здесь: Чточем разница между видимостью: скрытым и отображаемым: нет?