CSS 表示プロパティのグラデーション効果
P粉608647033
2023-08-21 11:08:32
<p>現在、CSS の「スーパー ドロップダウン」を設計しています。基本的には通常の純粋な CSS ドロップダウンですが、さまざまな種類のコンテンツが含まれています。 </p>
<p>現在、<strong> CSS 3 トランジション効果は「display」属性には適用されないようです</strong> つまり、<code>display: none</ からトランジションする方法はありません。 code> から < code>display: block</code> (または任意の組み合わせ)。 </p>
<p>上の例で、誰かが一番上のメニュー項目の上にマウスを置いたときに、第 2 レベルのメニューを「フェードイン」させる方法はありますか? </p>
<p><code>visibility:</code> 属性でトランジション効果を使用できることは知っていますが、それを効果的に使用する方法がわかりません。 </p>
<p>高さの使用も試しましたが、結果はひどいものでした。 </p>
<p>これは JavaScript を使用して簡単に実現できることも知っていますが、CSS だけを使用することに挑戦したかったのですが、少し理解が及んでいないように感じました。 </p>
要素を適切に機能させるには、他の方法で要素を非表示にする必要があります。
<div>
の両方を絶対位置に設定し、非表示のものをopacity: 0
に設定することで効果を実現しました。display
属性をnone
からblock
に切り替えると、他の要素のトランジション効果は発生しません。この問題を解決するには、要素を常に
display: block
にできるようにしますが、次のいずれかの方法で要素を非表示にします:高さ
を0
に設定します。不透明度
を0
に設定します。overflow: hidden
を使用して、要素を別の要素のフレームの外側に配置します。他にも解決策があるかもしれませんが、要素を
リーリーdisplay: none
に切り替えると遷移できなくなります。たとえば、次のようなことを試してみるとよいでしょう:しかし、これは うまくいきません。私の経験上、これには何の効果もないことが分かりました。
したがって、要素のdisplay: block
を常に維持する必要がありますが、次の方法でこれを回避できます。
リーリー2 つ以上のトランジション エフェクトを接続できます。この時点では
可視性
が便利です。