display、visibility、opacity三者的联系与区别

13 篇文章 0 订阅
文章讲述了CSS中transition在display:none到display:block的切换中失效的问题,推荐使用visibility和opacity替代,并详细解释了这三种属性的区别,以及如何结合transition实现过渡效果的示例。
摘要由CSDN通过智能技术生成

问题引入:当我们使用transition给某个元素添加过渡效果时,如果是display: nonedisplay: block 的变化,那么transition属性是不生效的。
解决:这时我们需要使用visibilityopacity来替代display

1. 首先认识这三个属性:

①. display 定义建立布局时元素生成的显示框类型

取值:noneblock、…

②. visibility 用来设置元素是否可见

取值:hiddenvisible

③. opacity 用来设置透明度

取值:0~1 (0是透明,1是不透明)

2. 三者的区别:

displayvisibilityopacity这三个属性分别取值 nonehidden0都能使元素在页面上看不见,但是他们在方方面面都还是有区别的。

display: nonevisibility: hiddenopacity: 0
是否占据页面空间不占据占据占据
子元素设置该属性,其他值是否可以继续显示不可以可以不可以
自身绑定的事件是否能继续触发不能触发不能触发能触发
是否影响遮挡住的元素触发事件不影响不影响影响
属性值改变是否产生回流产生不产生不产生
属性值改变是否产生重绘产生产生不一定产生
该属性是否支持transition不支持支持支持

3. 结合transition使用举例:

/*按照如下设置即可实现过渡效果*/
.nav-inner{
    visibility: hidden;
    opacity: 0;
    transition: all .5s;
}
.nav-out>li:hover>.nav-inner{
    visibility: visible;
    opacity: 1;
}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值