2009-07-21 2 views
71

display:noneは、要素がDOMの一部としてレンダリングされないため、表示プロパティが別のものに変更されるまでロードされません。jQueryが表示/非表示を使用する理由:表示:非表示の代わりにnone:非表示ですか?

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

visibility:hiddenvisibility:visibleの間で切り替えるのではなく、jQueryがその表示/非表示機能にdisplay:noneを使用するのはなぜですか?

+1

@RyanErbあなたは実際に質問を読んで(そして理解して)試しましたか、単にキーワードを一致させていますか? – TMS

答えて

65

display:noneでは、要素はすべて目的のために存在しなくなり、スペースを占有しません。 しかし、visibility:hiddenでは、ちょうどopacity:0を要素に追加したようです。同じ量の領域を占めますが、目に見えません。

jQueryクリエイターはおそらく、前者が.hide()に適していると考えていた可能性があります。

+0

技術を切り替える方法があるはずです。オブジェクトが計算を実行するのに必要なスペースを占有するようにしてください! –

10

非表示:非表示にすると、ページでスペースが使用されます。表示:なしは、DOMにまだ存在している間は、要素がスペースを持たず、完全に消滅するようにします。

6

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

18

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

+0

しかし、場合によっては可視性は本当に便利です。レイアウトを一貫性を保ちたいと思っているように...そして、UIはhide/showで縮小しません。 –

1

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

関連する問題