You can do a smart trick: change the margin-top at the same time as the height so that it looks like the height increases from bottom to top:
.buttom:hover { height: 180px; margin-top: 65px; transition-duration: 2s; }
Final margin-top (65px) - the difference between the initial margin-top (200) and the difference between the resulting (180px) and initial (45px) heights: 65 = 200 - (180-45). In this case, the block will visually remain motionless during growth.
source share