In web development, controlling how and when content appears is crucial to delivering a smooth user experience. One of the most commonly used CSS techniques for hiding elements is the display: none; property.
But what exactly does it do?
What Is display: none;?
The CSS rule display: none; completely removes an element from the page layout. It’s as if the element doesn’t exist at all — it takes up no space, isn’t visible, and doesn’t affect the positioning of other elements.
Syntax:
selector {
  display: none;
}
Example:
<p>This paragraph is always visible.</p>
<p class="hidden-text">This one is hidden with CSS.</p>
.hidden-text {
  display: none;
}
Result:
Only the first paragraph appears on the page. The second paragraph is completely hidden and takes up no space.
How It Differs from visibility: hidden;
Many people confuse display: none; with visibility: hidden;, but they behave differently:
| Property | Element Visible? | Space Reserved? | 
|---|---|---|
display: none; | ❌ No | ❌ No | 
visibility: hidden; | ❌ No | ✅ Yes | 
So if you want to hide something but keep its layout space, use visibility: hidden;. If you want to remove it entirely, use display: none;.
Use Cases for display: none;
- Hiding dropdown menus or modals until needed
 - Toggling content with JavaScript
 - Conditionally showing or hiding UI components
 - Creating responsive designs that show/hide content on different screen sizes
 
Example with JavaScript:
document.getElementById("menu").style.display = "none"; // Hides the element
document.getElementById("menu").style.display = "block"; // Shows the element
Summary
The display: none; CSS property:
- Hides the element completely
 - Removes it from the document flow
 - Makes it invisible and non-interactive
 - Is useful for dynamic interfaces and responsive layouts
 
It’s a simple but powerful tool for controlling visibility and layout behavior in modern web design.