最初は固定幅に設定されており、マウスオーバーでコンテンツに応じて自動幅に拡張する必要がある要素の、スクリプトを使用しない CSS のみのアニメーション遷移を作成する際に少し問題があります。マウスが消えると、固定幅に戻ります。
メニューがあるとしましょう:
<menu>
<li>Item</li>
<li>Item with long text</li>
</menu>
最初は、折りたたまれた幅 50 ピクセルの垂直バーとしてアイコンのみが表示されます。マウスオーバーすると、アイコンのラベルが表示されます。
これは、私が達成しようとしていることの簡単な例です。最初のメニューはトランジションが必要なメニューで、2 番目のメニューは、この量のコンテンツに対してどのような自動幅が必要かを示すためのものです。
問題
これは、ここで重要な役割を果たす CSS 全体の一部にすぎません。
menu {
width: 50px;
}
menu:hover {
width: auto; /* setting to other fixed width works as expected */
}
問題は、2 つのうちの 1 つに設定width
すると、次のようになることです。auto
- ブラウザは固定幅 0 (Chrome) からアニメーション化します - 次に追加する
min-width
と、次のアニメーションが実行されます - ブラウザは何もアニメーション化せず、新しいスタイルを適用するだけです