CSS Gridのgrid-template-rows
grid-template-columns
および
しかし、最近まで、3つの主要なブラウザはすべて、これらのメッシュプロパティのアニメーションを完全にサポートしています。あなたの創造性を刺激するためのいくつかの例を見てみましょう!
まず、これが私たちが議論しようとしていることです:
単純な2列グリッド。以前は、アニメーションとトランジションがサポートされていないため、おそらくCSSグリッドでそれを構築していなかったでしょうが、左列(おそらくサイドバーナビゲーション)がホバーで拡張する必要がある場合はどうでしょうか?今、これは可能です。
私はあなたが考えていることを知っています:「アニメーションCSS属性?ケーキ、私は長年それをやっています!」しかし、特定のユースケースを試すと、興味深いハードルに遭遇しました。
.grid
したがって、メッシュ自体を変換したい(特に、例のgrid-template-columns
クラスに設定されたセット)。ただし、左の列(.left
)は、
<div class="grid"> <div class="left"></div> <div class="right"></div> </div>
)に.grid
を設定する必要があります。 display: grid
.grid { display: grid; }
属性を使用して、2つの列を定義およびサイズ変更できます。左の列を非常に狭く設定し、後でホバリングすると幅を増やします。右側の列は、grid-template-columns
キーワードのおかげで、残りのスペースを占有します。 auto
.grid { display: grid; grid-template-columns: 48px auto; }
.grid { display: grid; grid-template-columns: 48px auto; transition: 300ms; /* 根据需要更改 */ }
完成しました!残りはアプリケーションホバー状態です。具体的には、左の列がホバリング時により多くのスペースを占めるように、.grid
プロパティをオーバーライドします。 grid-template-columns
CSSグリッドはアニメーションとトランジションをサポートしていますが、これだけではそれだけではありません。さらに興味深いのは、比較的新しい pseudoクラスを使用して、子要素(
)をスタイリングできることです。 :has()
<div class="grid"> <div class="left"></div> <div class="right"></div> </div>
これは、「.grid
コンテナが.left
という名前の要素がホバリングしている場合、.grid
コンテナでいくつかの操作を実行することを意味します。最終的に、それに含まれる子要素に基づいて親要素を選択できます - JavaScriptは必要ありません! :has()
列の幅を30%に増やしましょう。 .left
列は、残りのすべてのスペースを引き続き占有します:.right
.grid { display: grid; }
CSSグリッドがアニメーションを作成できるようになりましたが、CSSコードの9行のみでこの特定の例を作成できるという事実はさらに驚くべきものです。
.grid { display: grid; grid-template-columns: 48px auto; }
例2:パネルを展開します
この例は、グリッドコンテナ(列幅)を変換し、個々の列(背景色)も変換します。ホバーでより多くのコンテンツを提供するのに最適です。
関数が間違った遷移を生成することがあることを覚えておく価値があります。そのため、各列の幅を個別に設定します(つまり、
)。
repeat()
例3:行と列を追加grid-template-columns: 1fr 1fr 1fr
(はい、値が0であってもユニットを宣言する必要があります!)はdisplay: none
に正しく変換されますが、
grid-template-columns: 1fr 1fr 0fr
これはミシェル・バーカーのもう1つの例です。同じ概念ですが、列とよりクールな効果があります。実際に応答性が高いので、この例をフルスクリーンモードで実行してください(トリックはなく、デザインだけです!)。 grid-template-columns: 1fr 1fr 1fr
grid-template-columns: 1fr 1fr
その他の例
なぜ?
キーワードを使用して、前に表示されるレイアウトを作成し、CSSアニメーションを使用して
とをアニメーション化します。見た目ほど複雑ではありません! grid-row
grid-column
同じ概念ですが、ミシェルバーカーのクールな効果の詳細。あなたは良いロードスピナーを作ることができますか? span
最後に懐かしさ(私はここに年齢)を確認し、アンドリューハーバードはグリッドのようなアニメーションCSSグリッドを作ります。同じ - 同じ概念 - 他のグリッドアイテムが表示されません。しかし、心配しないでください、彼らはそこにいます。
以上がCSSグリッドのアニメーション(例の方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。