web-dev-qa-db-ja.com

jQueryの表示/非表示で、visibility:hiddenの代わりにdisplay:noneが使用されるのはなぜですか?

display:noneは、要素がDOMの一部としてレンダリングされないことを意味します。したがって、表示プロパティが別のものに変更されるまでロードされません。

visibility:hiddenは要素をロードしますが、表示しません。

JQueryがdisplay:nonevisibility:hiddenを切り替える代わりに、show/hide関数にvisibility:visibleを使用するのはなぜですか?

71
isayno

_display:none_では、あらゆる目的のために要素が存在しなくなるため、スペースを占有しません。ただし、_visibility:hidden_では、まるで要素に_opacity:0_を追加したかのようになります。同じ量のスペースを占有しますが、見えないように動作します。

JQueryの作成者は、おそらく前者の方が.hide()に適していると考えていました。

65
Salty

visibility: hiddenは、要素を非表示にしますが、ページのレイアウトから削除しません。要素があった場所に空のボックスを残します。 display: noneはレイアウトからそれを削除し、ページ上のスペースを占有しないようにします。これは通常、人々が何かを隠すときに必要なものです。

18
John Kugelman

Visibility:hiddenは、ページのスペースを使用するように要素を非表示にします。 Display:noneは、DOMに存在している間、要素にスペースがなく、完全に削除されます。

10
user142019

可視性は要素を不可視にしますが、それでも画面上のスペースを占有します。

6
Seph

Visibility:hiddenは単に要素を非表示にしますが、DOMにロードされるため、ロード時間が消費されます。だが Display:noneは要素をロードしません。

1
anil kumar