'display'プロパティでトランジションを機能させることはできません。'opacity'プロパティを使用してこれを達成する必要があります。
関連:
ジムジェファーズは説明しました:
これを回避するには、要素を常に表示ブロックにしますが、次のいずれかの手段を調整して要素を非表示にします。
Set the height to 0.
Set the opacity to 0.
Position the element outside of the frame of another element that has overflow: hidden.
そして、あなたの移行のために、それを「クロスブラウザ」にするために:
.transition {
-webkit-transition: all 0.3s ease-out; /* Chrome 1-25, Safari 3.2+ */
-moz-transition: all 0.3s ease-out; /* Firefox 4-15 */
-o-transition: all 0.3s ease-out; /* Opera 10.50–12.00 */
transition: all 0.3s ease-out; /* Chrome 26, Firefox 16+, IE 10+, Opera 12.50+ */
}