transition不支持display属性

想让display从none变为block,或者从block变为none时,实现这样的动画效果大多数人都会采用transition。然而可惜的是transition并不支持display。那么能想到的办法就是使用visibility属性实现从 visible到hidden的转换。

但是visibility属性与display的区别
display隐藏的元素是脱离文档流的,它不在页面中占用空间。而visibility: hidden的元素会在页面上留白。所以还是display的用法好一点,那么怎样来填这个坑,可以通过设置max-height(max-width等等),使这些属性 进行过渡(transition).
例如:

 .table_list{  
            width:100%;   
            top:10px;  
            max-height: 0px;
            margin-bottom: 10px;
            position:relative;     
            opacity: 0;
            font-size: 12px; 
            -webkit-transition: max-height 2s linear;      

            }  

.cenima_name:hover .table_list
    {   
            opacity: 1; 
            max-height: 300px;
    }

上面这段代码实现的功能就是,鼠标悬浮在一个div上,显示另一个div。
但是这样做的前提是另一个div必须是包含它的div的子元素。

然而问题是当你要显示的元素小于300px时,就会留白,也不美观。所以在.cenima_name:hover .table_list中加入overflow:hidden。这样的话就可以比较完美的解决了transition不支持display属性这个问题。

.cenima_name:hover .table_list
    {   

        opacity: 1; 
        max-height: 300px;
        overflow: hidden;

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值