我想将自上而下的高度增长路径更改为Down-top
CSS中有可能吗?
这是我的代码
http://jsfiddle.net/yasharshahmiri/1pkemq1p/3/
.buttom{
margin-top:200px;
margin-right:34px;
width:150px;
height:45px;
background:black;
float:right;
transition-duration:2s; }
.buttom:hover{
height:180px;
transition-duration:2s;}
答案 0 :(得分:12)
您只需要像这样设置position: absolute
和bottom
位置:
.buttom{
margin-top:200px;
margin-right:34px;
width:150px;
height:45px;
background:black;
float:right;
position:absolute;
bottom: 10px;
transition: height 2s ease-in-out
}
.buttom:hover{
height:180px
}

<div class='buttom'> </div>
&#13;
使用Rotate和transform-origin可以设置相对于元素的位置
.buttom{
margin-top:200px; /* this shall be higher than the height on hover*/
margin-right:34px;
width:150px;
height:45px;
background:black;
transition: height 2s ease-in-out ;
transform: rotatex(180deg);
transform-origin: top;
}
.buttom:hover{
height:180px
}
&#13;
<div class='buttom'> </div>
&#13;
或者这样:
.buttom{
width:150px;
height:45px;
background:black;
transition: height .3s cubic-bezier(0.175, 0.885, 0.32, 1.275) ;
transform: rotatex(180deg) translate3d(0, -200px,0);/* the Y-Value shall be higher than the height on hover*/
transform-origin: top;
}
.buttom:hover{
height:180px
}
&#13;
<div class='buttom'></div>
&#13;
答案 1 :(得分:6)
你可以做一个聪明的伎俩:同时用高度改变margin-top
,看起来高度从下到上增长:
.buttom:hover {
height: 180px;
margin-top: 65px;
transition-duration: 2s;
}
最终margin-top
(65px)是起始margin-top
(200)与结果(180px)和初始(45px)高度差异的差异:65 = 200 - (180 - 45) 。在这种情况下,块会在成长过程中直观地保持固定。
答案 2 :(得分:3)
.bottom-wrap { position: relative; height: 180px;}
.bottom { position: absolute; bottom:0; width: 100px; height: 20px;
background: #000;
transition: height 0.2s ease-in-out;
}
.bottom:hover { height: 180px; }
&#13;
<div class="bottom-wrap">
<div class="bottom">
</div>
</div>
&#13;
答案 3 :(得分:2)
您必须将absolute
位置设为<div>
。
.buttom {
width: 150px;
height: 45px;
background: black;
transition-duration: 2s;
position: absolute;
right: 10%;
bottom: 10%;
}
.buttom:hover {
height: 180px;
transition-duration: 2s;
}
<div class='buttom'></div>