【功能】transition不支持display属性以及display、opacity、visibility之间的区别

一、transition过渡不支持display属性

css3过渡transition不支持display属性,我们可以使用opacity或者visibility属性进行替换。相关的案例可以查看上一篇博文:【功能】关于页面加载进度条百分比实现的伪方法

 

二、display、opacity、visibility之间的关系

共同点:都让元素不可见

区别:

1、结构
display:none 从渲染树中消失,不占据空间,不能点击
visibility:hidden 从渲染树消失,占据空间,不能点击
opacity:0 从渲染树消失,占据空间,可以点击

2、继承
display:none和opacity:0 非继承属性,修改子孙节点属也无法显示
visibility:hidden 是继承属性,子孙节点由于继承了visibility:hidden才不显示,通过设置visibility:visible可以让子孙节点显示出来。

3、性能
display:none 引起页面重排 性能消耗大
visibility:hidden 只造成本元素的重绘,性能消耗较少
opacity:0 只造成本元素重绘,性能消耗较少

 

【参考文章】

分析比较opacity、visibility、display优劣和适用场景

 

 

posted @ 2020-03-11 10:08  WANNANANANA  阅读(753)  评论(0编辑  收藏  举报