Сделать DIV невидимым в CSS и JavaScript

Мне удалось сделать тег DIV невидимым в JavaScript, установив для отображения значение none и видимость - hidden. Этого также можно добиться с помощью этого класса:

.invisible {
    display: none;
    visibility: hidden;
}

Display none гарантирует, что поле DIV пусто, а скрытая видимость гарантирует, что он не будет виден. Проблема с этим методом заключается в том, что у меня есть прокручиваемые DIV или текстовые поля с переполненным содержимым, когда вы устанавливаете display: none, некоторые браузеры забудут позицию прокрутки для этих элементов. Есть ли лучший способ сделать DIV невидимым без использования свойства display? Я бы предпочел не прибегать к использованию JavaScript для записи положения прокрутки и т.п., если это возможно.

РЕДАКТИРОВАТЬ:

Мне удалось решить эту проблему с вашей помощью, я применил следующее:

.invisible {
    visibility: hidden;
    position: absolute;
    top: -9999px;
}

.visible {
    visibility: visible;
    position: static;
}

Я попытался оставить: -9999px, но это расширяет вертикальную полосу прокрутки в IE ... Я также обернул свое текстовое поле в другой DIV и применил к нему видимые / невидимые стили, потому что в противном случае текстовое поле потеряет свою позицию прокрутки. Я тестировал это в Chrome, Firefox, IE и Safari на своем iPhone. Просто примечание, DIV, обернутый вокруг текстового поля, похоже, не помог в FF, и полоса прокрутки все еще сбрасывается. Но прокручиваемые DIV теперь в порядке. Спасибо за вашу помощь!

19
задан Aram Kocharyan 1 June 2012 в 16:01
поделиться