如何垂直/向上过渡?

时间:2013-03-24 16:51:32

标签: html css3

以下代码有效,但当鼠标悬停在标签上时,标签会向下垂直展开。如何向上扩展?

ul.nav li a {
-webkit-transition: all 0.3s ease-out;
background: #cbcbcb ;
color: #174867;
padding: 7px 5px 7px 5px;
width: 50px;
height:100px;
display: block;
text-decoration: none;
-webkit-box-shadow: 2px 2px 4px #888;
}

ul.nav li a:hover {
background: #ebebeb ;
color: #67a5cd;
padding: 80px 5px 0px 5px;
}
<div class="navbox">
<ul class="nav">
<li><a href="#">Bad</a></li>

</ul>
</div>

http://jsfiddle.net/jtwsJ/1/

2 个答案:

答案 0 :(得分:1)

  1. 为您元素定义margin-top

  2. hover上按照您增加元素高度的值减少该边距

  3. DEMO

    ul.nav li a {
        -webkit-transition: all 0.3s ease-out;
        background: #cbcbcb ;
        color: #174867;
        padding: 7px 5px 7px 5px;
        width: 50px;
        height:100px;
        margin-top: 200px;
        display: block;
        text-decoration: none;
        -webkit-box-shadow: 2px 2px 4px #888;
    }
    
    ul.nav li a:hover {
        margin-top: 100px;
        height: 200px;
        background: #ebebeb ;
        color: #67a5cd;
    }
    

答案 1 :(得分:0)

想到的最简单的方法是相对定位元素,然后更改top属性,将其向上移动到您添加到框中的金额。

  1. position: relativetop: 0添加到非悬停状态。

  2. top: -66px添加到悬停状态。

  3. 哪会导致something like this。 (注意我在顶部添加了额外的空间,因此您可以看到它向上移动而不是离开屏幕。)