You need to set an explicit height on your .innerMenu
element, as transitions require an actual value (i.e. non-auto or default) to be applied :
.innerMenu {
/* Example of initial height */
height: 10px;
border: thin solid green;
}
As a note, you may also want to consider adding a transition to the element as well to ensure that the animation is applied when the element is hovered on and off.
Example

.menu {
width: 150px;
height: 200px;
border: thin solid red;
}
.innerMenu {
height: 10px;
border: thin solid green;
transition: 2s;
-webkit-transition: 2s;
-moz-transition: 2s;
-o-transition: 2s;
-ms-transition: 2s;
}
div.menu:hover {
width: 300px;
transition: 2s;
-webkit-transition: 2s;
-moz-transition: 2s;
-o-transition: 2s;
-ms-transition: 2s;
}
div.innerMenu:hover {
height: 60px;
transition: 2s;
-webkit-transition: 2s;
-moz-transition: 2s;
-o-transition: 2s;
-ms-transition: 2s;
}
<div class="menu">
<div class="innerMenu"></div>
<div class="innerMenu"></div>
</div>