皆さんは、CSSにおける「display:none」と「visibility:hidden」の違いはご存知ですか? displayプロパティは、ブロックレベルやインラインレベルでの表示・非表示を指定するプロパティです。displayプロパティを使って非表示にした場合は、要素自体がなかったものと同じ扱いになるのでコンテンツがズレテレイアウトに影響がでます。 visibilityプロパティは、視覚的な表示・非表示の指定になります。visibilityプロパティを使って非表示にした場合は、視覚的に非表示になるだけなので、表示されるスペースはそのまま確保されます。従ってレイアウトには影響を与えません。その代わり余白が生まれます。