Как скрыть элементы, не имея их места на странице?

Я использую visibility:hidden, чтобы скрыть некоторые элементы, но они все еще занимают место на странице, пока они скрыты.

Как я могу заставить их полностью исчезать визуально, как будто они вообще не находятся в DOM (но не удаляют их вообще из DOM)?

Ответ 1

Попробуйте установить display:none, чтобы скрыть и установить display:block для отображения.

Ответ 2

используйте стиль вместо

<div style="display:none;"></div>

Ответ 3

Использовать display:none является хорошим вариантом только для удаления элемента, но он будет также удален для прокрутчиков. Есть также дискуссии, если это влияет на SEO. Там хорошая, короткая статья по этой теме в A List Apart

Если вы действительно просто хотите скрыть и не удалять элемент, лучше используйте:

div {
  position: absolute; 
  left: -999em;
}

Подобным образом он также может читаться программами чтения с экрана.

Единственным недостатком этого метода является то, что этот DIV фактически отображается, и он может влиять на производительность, особенно на мобильные телефоны.

Ответ 4

Посмотрите вместо visibility: hidden; используйте display: none;. Первый параметр будет скрыт, но еще занимает пробел, а второй параметр будет скрыт, а не не займет пробел.

Ответ 5

display:none, чтобы скрыть и установить display:block для отображения.

Ответ 6

здесь другой подход к возврату их после отображения: none. не используйте display: block/inline и т.д. Вместо этого (при использовании javascript) установите для свойства свойства css значение '' (т.е. пустое)

Ответ 7

Ответ на этот вопрос говорит о том, чтобы использовать display: none и display: block, но это не помогает кому-то, кто пытается использовать css-переходы, чтобы показывать и скрывать контент, используя свойство видимости.

Это также сбило меня с ума, потому что использование дисплея убивает любые css-переходы.

Одно из решений - добавить это к классу, который использует видимость:

overflow:hidden

Для этого работа зависит от компоновки, но она должна содержать пустой контент в пределах div, в котором он находится.

Ответ 8

display: none - это решение, которое полностью скрывает элементы с его пространством.

Рассказ о display:none и visibility: hidden

visibility:hidden означает, что тег не отображается, но для него выделяется пространство на странице.

display:none означает, что он полностью скрывает элементы с его пространством. (хотя вы все еще можете взаимодействовать с ним через DOM)

Ответ 9

$('#abc').css({"display":"none"});

это скрывает содержимое, а также не оставляет пустое пространство.

Ответ 10

над моим знанием можно в 4-х направлениях

  • HTML <button style="display:none;"></button>
  • CSS #buttonId{ display:none; }
  • jQuery $('#buttonId').prop('display':'none'); и $("#buttonId").css('opacity', 0);

Ответ 11

display: none - лучшая вещь, чтобы избежать пробела на странице