区别如下:
(推荐教程:css快速入门)
display: none的元素不占据任何空间,visibility: hidden的元素空间保留;
display: none会影响css3的transition过渡效果,visibility: hidden不会;
display: none隐藏产生重绘 ( repaint ) 和回流 ( relfow ),visibility: hidden只会触发重绘;
株连性:display: none的节点和子孙节点元素全都不可见,visibility: hidden的节点的子孙节点元素可以设置 visibility: visible显示。visibility: hidden属性值具有继承性,所以子孙元素默认继承了hidden而隐藏,但是当子孙元素重置为visibility: visible就不会被隐藏。