自動でコンテンツの幅をアニメーション化する方法
CSS では、width プロパティを auto に設定して、要素のサイズを強制的にフィットさせることができますその内容。ただし、この値は通常、アニメーション化できません。その結果、コンテンツが変化しても要素の幅はスムーズに変化せず、視覚的に不快になる可能性があります。
width: auto で要素の幅をアニメーション化することは可能ですか?
残念ながら、auto に設定されている要素の width プロパティを直接アニメーション化することはできません。 auto 値は、コンテンツに必要なだけのスペースを要素に強制的に占有するという点で特別です。この値をアニメーション化するには要素のコンテンツを変更する必要がありますが、これは通常は行いたくないことです。
width プロパティをアニメーション化する代わりに max-width を使用する代替解決策
それ自体、max-width プロパティを max-width のトランジションとともに使用して、幅をアニメーション化しているような錯覚を作り出すことができます。要素の実際の幅よりも大きい max-width を設定することで、要素を強制的にその最大幅内に収めることができます。要素のコンテンツが変化して幅が広くなった場合、max-width により要素が新しい最大サイズまで拡張できるようになり、アニメーション幅の外観が作成されます。
コード例:
.myspan { display: inline-block; font-size: 30px; background-color: #ddd; vertical-align: bottom; } .myspan::after { content: " a0\f12a "; font-family: ionicons; font-size: 80%; display: inline-block; max-width: 0; transition: max-width .6s; vertical-align: bottom; overflow: hidden; } .myspan:hover::after { max-width: 80px; transition: max-width 1s; }
この例では、.myspan 要素の max-width プロパティが 0 に設定されています。ユーザーが要素の上にマウスを置くと、max-width プロパティがは 80px に変更され、要素が強制的にその幅まで拡大されます。トランジション プロパティにより、幅の変更が確実にアニメーション化され、アニメーション化された幅の外観が作成されます。
以上がCSS で「width: auto」を使用する場合、要素の幅をアニメーション化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。