Last update: 2008-09-09
display プロパティの値に [none] を指定した要素は生成されなくなる。
表示に関するプロパティの visibility で [hidden] を値に指定したブロック要素の効果は、該当ブロックを「隠す」となり、対象ブロック部分には空白が「表示される」。これに対し display で [none] を値に指定した場合は、該当するブロック要素自体が生成されないため「存在しない」レンダリング結果となる。これが両セレクタの大きな違いだ。
以下 display: none と visibility: hidden のレンダリングサンプル。
パラグラフ中の単語 Firefox に span 要素を設定して、display: none、visibility: hidden を指定したレンダリングテスト。
display プロパティで [none] を指定した場合、 Firefox 自体が存在していないようにレンダリングされる。visible: hidden との違いが分かれば display: none との使い分けができるはずだ。
ただし、display: none を手軽に利用してはいけない。というよりも、現状、検索エンジンスパム扱いされる可能性があるので、必要性がない限り利用しない方が良い。この問題については「display: none 注意」などをキーワードに Web 上で検索してみると良い。