display: none彻底移除元素且不占空间,visibility: hidden仅隐藏但保留布局位置,前者触发重排后者仅重绘,性能与布局影响不同。
在CSS中,控制元素的显示与隐藏是常见的布局需求。display 和 visibility 是两个关键属性,虽然都能影响元素的可见性,但作用机制和效果完全不同。下面详细介绍它们的使用方法和区别。
display 属性决定元素如何在页面中布局和是否参与文档流。设置为某些值时,元素将完全不显示,并且不占据空间。
常用取值:当设置 display: none; 时,元素从文档流中彻底移除,其原本占据的位置会被其他元素填补。例如:
.h
idden {
display: none;
}
这个类应用后,元素不可见,页面布局也会随之调整。
visibility 属性只控制元素的可见性,不影响其在页面中的位置和布局。
常用取值:使用 visibility: hidden; 后,元素看不见了,但周围的元素不会移动,就像它“隐身”了一样。比如:
.invisible {
visibility: hidden;
}
此时该元素仍然会影响页面布局,只是人眼看不到。
理解两者的差异对布局控制至关重要:
根据需求选择合适的属性:
基本上就这些。掌握 display 和 visibility 的特性,能更精准地控制页面元素的呈现方式。