Противоположностью visibility: hidden
является visibility: visible
. Точно так же, есть ли противоположность для display: none
?
Многие люди запутываются, выясняя, как показать элемент, когда он есть display: none
, поскольку это не так ясно, как использование visibility
свойства.
Я мог бы просто использовать visibility: hidden
вместо display: none
, но это не дает тот же эффект, поэтому я не собираюсь с этим.
display
Было бы просто удалить большой список всех возможных значений. (И это, конечно, мое мнение: возможно, людям действительно понравился этот список.)Ответы:
display: none
не имеет буквально противоположного, как этоvisibility:hidden
делает.visibility
Свойство решает , является ли элемент видимым или нет. Поэтому он имеет два состояния (visible
иhidden
), которые противоположны друг другу.display
Собственности, однако, решает , какие правила разметки элемент будет следовать. Есть несколько различных видов правил для того, как элементы будут лежать себя в CSS, поэтому существует несколько различных значений (block
,inline
, иinline-block
т.д. - смотрите документацию для этих значений здесь ).display:none
полностью удаляет элемент из макета страницы, как будто его там не было.Все остальные значения для
display
элемента являются частью страницы, поэтому в некотором смысле они все противоположныdisplay:none
.Но нет единственной ценности, которая прямо
display:none
противоположна - точно так же, как нет единой прически, противоположной «лысой».источник
display: initial
в удаленном самоответе - для браузеров, реализующих CSS2.1, это синонимdisplay: inline
. Он не сбрасываетсяdisplay
в браузер по умолчанию для данного элемента - это не то, что означает «начальное значение».display:none
" тогда ты читаешь ", точно так же, как нет ни одной прически, которая была бы противоположна лысому " Wow plus 1, хорошо сказано.Истинной противоположности
display: none
нет (пока).Но
display: unset
очень близко и работает в большинстве случаев.От MDN (Сеть разработчиков Mozilla):
Обратите внимание также, что
display: revert
в настоящее время разрабатывается. Смотрите MDN для деталей.источник
display: initial
?При изменении элементов
display
в Javascript во многих случаях подходящим вариантом для отмены результатаelement.style.display = "none"
являетсяelement.style.display = ""
. Это удаляетdisplay
объявление изstyle
атрибута, возвращая фактическое значениеdisplay
свойства к значению, установленному в таблице стилей для документа (к значению браузера по умолчанию, если оно не было переопределено где-либо еще). Но более надежный подход - иметь такой класс в CSS, каки добавление / удаление этого имени класса в / из
element.className
.источник
.element { display: none }
(определенный в CSS lib, например),.element { display: '' !important }
он не будет работать. Вы должны использовать.element { display: unset !important }
display:none
только в JavaScript. Конечно, пустая строка не будет работать в CSS, так как это недопустимое значение. Однакоdisplay: unset
вы предлагаете не восстанавливать, например, значениеdisplay:block
по умолчанию для a<div>
или значениеdisplay:table-row
по умолчанию для a<tr>
, оно фактически превращает все вdisplay:inline
(как и преждеdisplay:initial
). Чтобы восстановить значение браузера по умолчанию для элемента, естьdisplay:revert
, но оно не очень хорошо поддерживается ( caniuse.com/#feat=css-revert-value ).ты можешь использовать
Это работает как обычно .... Это небольшой взлом в CSS;)
источник
display
свойства, поэтому оно просто игнорируется и эффективно работает какelement.style.display = ''
присваивание (см. Мой ответ выше).display: chunk norris;
тот же эффект, с чуть большим ударом..element { display: none }
(определенный в CSS lib, например),.element { display: normal !important }
он не будет работать. Вы должны использовать.element { display: unset !important }
Я использую
display:block;
Это работает для меняисточник
block
, это не то, что вы хотите, как правило, для такогоinline
элемента, как,<span>
например.Как объясняет Пол, здесь нет буквальной противоположности отображению: нет в HTML, так как каждый элемент имеет различное отображение по умолчанию, и вы также можете изменить отображение с помощью класса или встроенного стиля и т. Д.
Однако, если вы используете что-то вроде jQuery, их функции показа и скрытия ведут себя так, как если бы была противоположность показа none. Когда вы прячете, а затем снова показываете элемент, он будет отображаться точно так же, как и до того, как был скрыт. Они делают это, сохраняя старое значение свойства display при скрытии элемента, чтобы при повторном его отображении он отображался так же, как и до того, как вы его спрятали. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180
Это означает, что если вы установите div, например, для отображения inline, или inline-block, и вы скрываете его, а затем снова показываете, он снова будет отображаться как inline-inline-block, как было раньше
сценарий:
Обратите внимание, что свойство display для div будет оставаться постоянным даже после того, как оно было скрыто (display: none) и показано снова.
источник
В случае таблицы стилей, пригодной для печати, я использую следующее:
Я использовал это, когда мне нужно было распечатать форму, содержащую значения, а поля ввода было сложно напечатать. Поэтому я добавил значения, заключенные в тег span.print_only (div.print_only был использован в другом месте), а затем применил класс .no_print к полям ввода. Таким образом, на экране вы увидите поля ввода, а при печати - только значения. Если вы хотите получить фантазию, вы можете использовать JS для обновления значений в тегах span при обновлении полей, но в моем случае в этом не было необходимости. Возможно, не самое элегантное решение, но оно сработало для меня!
источник
Вы можете использовать дисплей: блок
Пример :
источник
Я столкнулся с этой проблемой при создании приложения, в котором я хотел, чтобы таблица была скрыта для определенных пользователей, но не для других.
Первоначально я настроил его как display: none, но затем display: inline-block для тех пользователей, которым я хотел его видеть, но у меня возникли проблемы с форматированием, которые вы могли ожидать (объединение столбцов или вообще беспорядок).
Я решил, что сначала нужно показать таблицу, а затем сделать «display: none» для тех пользователей, которых я не хотел видеть. Таким образом, он отформатировал нормально, но затем исчез при необходимости.
Боковое решение, но может кому-то помочь!
источник
противоположность «none» - это «flex» при работе с реагировать на нативный.
источник
visibility: hidden скрывает элемент, но элемент их с DOM. И в случае отображения: ни один это удалит элемент из DOM.
Таким образом, у вас есть возможность для элемента, чтобы скрыть или показать. Но как только вы удалите его (я имею в виду не отображать), у него не будет четкого противоположного значения. display имеет несколько значений, таких как display: block, display: inline, display: inline-block и многие другие. Вы можете проверить это из W3C.
источник
display
?Лучший ответ на
display: none
этоили
источник
display:normal
. См developer.mozilla.org/en-US/docs/Web/CSS/displayВы можете использовать это,
display:block;
а также добавитьoverflow:hidden;
источник
display: block
не очень хорошо работает на<span>
или или<td>
... и предыдущий ответ уже упоминалdisplay: block
.overflow: hidden
. Зачем? Какой смысл добавлять это? Это не имеет ничего общего с удалениемdisplay: none
.Лучшая «противоположность» - вернуть значение по умолчанию:
источник