三种隐藏方式的区别

1.display:node:

元素在页面上将侧底小时,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的回流和重绘,父元素none,子元素block,子元素也不会出现

2.visibility:hidden:

和display:none的区别在于,元素在页面消失后,其占据的物理空间依旧会保留着,所以它指挥导致浏览器的重绘而不会回流。父元素hidden,子元素visible,子元素可以显示

3.opacity:0:

只是看不见元素,元素依然存在并且占有原有位置

注:

事件绑定差异

1.display:none:元素彻底消失,不会触发捆绑事件
2.visibility:hidden:无法接收js事件
3.opacity:0:可以接受js事件,只是相对于人眼是隐藏的

动画属性差异

1.display:none:完全不受transition属性影响,元素立即消失
2.visibility:hidden:消失时间跟transition属性设置的时间一样,但是没有动画效果
3.opacity:0:动画正常生效

visibility配合opacity和transtion可以实现真正的元素淡入淡出。如果只用opacity时,即使最后元素opacity变为0,但实现上该图片还是可以覆盖其他元素以及可以接受js效果。所以使用visibility可以实现元素真正的隐藏

#oShow{
    visibility: visible;
    opacity: 1;
    transition: 1s;
}
#oShow:hover{
    visibility: hidden;
    opacity: 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者:狼狼的蓝胖子原文地址:http://www.cnblogs.com/lrzw32/p/5191012.htm...
    IT程序狮阅读 492评论 0 3
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,845评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,350评论 0 11
  • 几个重要的问题: c#强调封装,在程序中,只有一个一个类,没有像js一样类似于主执行语句的那些东西。主执行的那些东...
    寿_司阅读 679评论 0 0
  • 我是4岁宝宝妈妈,三十二了,其实我过了29岁后呢,别人问我,你多大了,我基本是不知道的,是我有意忘记了自己的年纪,...
    刘彦彤阅读 1,151评论 0 0