CSS 表示プロパティの変換
P粉958986070
2023-08-23 12:27:32
<p>現在、CSS の「メガドロップダウン」メニューを設計しています。基本的には通常の純粋な CSS ドロップダウンですが、さまざまなタイプのコンテンツが含まれています。 </p>
<p>現在、<strong>CSS 3 トランジションは「display」プロパティでは動作しないようです</strong>、つまり、<code>display: none< から、<code>display: none< へのいかなる種類のトランジション/コード>も作成できません。 < code>display: block</code> (または任意の組み合わせ)。 </code></p><code>
<p>トップレベルのメニュー項目の 1 つにカーソルを置いたときに、上の例の 2 番目のレベルのメニューを「フェードイン」させる方法はありますか? </p>
<p><code>visibility:</code> 属性で変換を使用できることは知っていますが、それを効率的に使用する方法が思いつきません。 </p>
<p>高さの使用も試みましたが、惨めに失敗しました。 </p>
<p>JavaScript を使えば簡単にできることもわかっていますが、CSS だけを使うことに挑戦したいのですが、私の能力は少し足りないと思います。 </p></code>
これが適切に機能するには、他の方法で要素を非表示にする必要があります。
不透明度: 0
に設定することで、この効果を実現しました。display
属性をnone
からblock
に切り替えると、他の要素では遷移は発生しません。 强>この問題を解決するには、要素を常に
display: block
にすることを許可しますが、次のいずれかを調整して要素を非表示にします:を
0に設定します。
を
0に設定します。
要素を使用して、要素を別のフレームの外側に配置します。
display: none
しかし、これはに切り替えると変換できません。たとえば、次のようなことを試すことができます:
リーリー機能しません。私の経験では、これでは何も起こらないことがわかりました。
したがって、要素display: block
を常に保持する必要がありますが、次のようにすることで回避できます:
リーリー2 つ以上のトランジションを接続できます。今回は
visibility
が役に立ちます。