Ответы:
Попробуйте установить, display:none
чтобы скрыть и установить, display:block
чтобы показать.
display: block
, некоторые должны быть установлены display: inline
(например, <span>
или <a>
или <img>
элементы DOM).
hidden
с именем display: none
. Добавьте класс к элементу, чтобы скрыть его, удалить его показать. При удалении его display
свойство восстанавливается до элемента по умолчанию.
Использовать display:none
это хороший вариант, просто удалить элемент, НО он также будет удален для программ чтения с экрана . Есть также обсуждения, если это влияет на SEO. Есть хорошая, короткая статья на эту тему в A List Apart
Если вы действительно хотите скрыть, а не удалить элемент, лучше используйте:
div {
position: absolute;
left: -999em;
}
Таким образом, это может быть также прочитано программами чтения с экрана.
Единственным недостатком этого метода является то, что этот DIV фактически отображается, и это может повлиять на производительность , особенно на мобильных телефонах.
visibility: hidden;
, допустим, у вас есть другие абсолютные элементы, у которых не будет конфликта для пространства, только конфликт z-index
. Просто чтобы скрыть элемент, с которым я бы пошелvisibility
Смотри, вместо того, чтобы visibility: hidden;
использовать display: none;
. Первый вариант будет скрыт, но по- прежнему занимает место, а второй параметр будет скрыт и не займет никакого места.
Ответ на этот вопрос гласит: использовать display: none и display: block, но это не помогает тем, кто пытается использовать CSS-переходы для отображения и скрытия содержимого с помощью свойства видимости.
Это также сводило меня с ума, потому что использование дисплея убивает любые CSS-переходы.
Одним из решений является добавление этого в класс, который использует видимость:
overflow:hidden
Чтобы это работало, это зависит от макета, но оно должно содержать пустой контент внутри div, в котором он находится.
дисплей: ни один не решение, это полностью скрывает элементы со своим пространством.
display:none
иvisibility: hidden
visibility:hidden
означает, что тег не виден, но для него выделено место на странице.
display:none
значит полностью скрывает элементы со своим пространством. (хотя вы все равно можете взаимодействовать с ним через DOM)
Переключение display
не допускает плавных переходов CSS. Вместо этого переключите и the visibility
и the max-height
.
visibility: hidden;
max-height: 0;
transform: translateX(-100%)
. Мы не хотимdisplay: none
display:none
спрятаться и установить, display:block
чтобы показать.
as though they are not in the DOM at all (but without actually removing them from the DOM)
visibility: hidden
только останавливает отображение содержимого, но по-прежнему использует вертикальное / горизонтальное пространство, display: none удаляет вертикальное / горизонтальное пространство для элемента.
Вот другой способ вернуть их после отображения: нет. не используйте display: block / inline и т. д. Вместо этого (если используется javascript) установите для свойства css display значение '' (т. е. пустое)
выше моих знаний это возможно 4 способами
<button style="display:none;"></button>
#buttonId{ display:none; }
$('#buttonId').prop('display':'none');
& $("#buttonId").css('opacity', 0);
offsetTop
, и яdisplay:none
должен был установитьoffsetTop
значение 0. Мое решение здесь состояло в том, чтобы использоватьvisibility: hidden
затем установить ширину и высоту на 0. Как только мне нужно было сделать элемент видимым снова, я удалил три атрибута, используя Javascript. Немного хакерское решение, но оно хорошо работает почти во всех случаях использования.