検索
ホームページウェブフロントエンドCSSチュートリアルCSSグリッドのアニメーション(例の方法)

Animating CSS Grid (How To   Examples)

CSS Gridのgrid-template-rowsgrid-template-columnsおよび

プロパティが、すべてのメジャーブラウザでアニメーションに利用できるようになりました!実際、CSSグリッドは、CSSグリッドレイアウトモジュールレベル1仕様に組み込まれているため、アニメーションを長い間サポートしてきました。

しかし、最近まで、3つの主要なブラウザはすべて、これらのメッシュプロパティのアニメーションを完全にサポートしています。あなたの創造性を刺激するためのいくつかの例を見てみましょう!

カタログ
  • カタログ
  • 例1:サイドバーを展開します
  • 例2:パネルを展開します
  • 例3:行と列を追加
  • その他の例

例1:サイドバーを展開します

まず、これが私たちが議論しようとしていることです:

単純な2列グリッド。以前は、アニメーションとトランジションがサポートされていないため、おそらくCSSグリッドでそれを構築していなかったでしょうが、左列(おそらくサイドバーナビゲーション)がホバーで拡張する必要がある場合はどうでしょうか?今、これは可能です。

私はあなたが考えていることを知っています:「アニメーションCSS属性?ケーキ、私は長年それをやっています!」しかし、特定のユースケースを試すと、興味深いハードルに遭遇しました。

.gridしたがって、メッシュ自体を変換したい(特に、例のgrid-template-columnsクラスに設定されたセット)。ただし、左の列(.left)は、:hover

HTMLから始めて、プロセス全体を段階的に説明しましょう。それは実際には非常に標準的です... 2つの列のあるグリッド。

<div class="grid">
  <div class="left"></div>
  <div class="right"></div>
</div>
装飾CSSは別として、最初に親コンテナ(

)に.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

個人の好みに応じて(またはプロジェクトで既にCSS変数を使用する場合がある)、簡潔に見える場合とそうでない場合があるCSS変数を使用することもできます。
.grid {
  display: grid;
}

CSSグリッドがアニメーションを作成できるようになりましたが、CSSコードの9行のみでこの特定の例を作成できるという事実はさらに驚くべきものです。

.grid {
  display: grid;
  grid-template-columns: 48px auto;
}
これはOlivia ngの別の例です。これは概念ですが、コンテンツが含まれています(ナビゲーションアイコンをクリックしてください):

例2:パネルを展開します

この例は、グリッドコンテナ(列幅)を変換し、個々の列(背景色)も変換します。ホバーでより多くのコンテンツを提供するのに最適です。

関数が間違った遷移を生成することがあることを覚えておく価値があります。そのため、各列の幅を個別に設定します(つまり、

)。

repeat()例3:行と列を追加grid-template-columns: 1fr 1fr 1fr

この例は、グリッドの列をアニメーション化します。しかし、あなたはそれを推測しました - この状況にもtrapがあります。要件は、「新しい」列を隠すことができない(つまり、

に設定する)、CSSグリッドが幅を0FRに設定するときにその存在を認めなければならないことです。

したがって、3列のグリッドの場合 -

(はい、値が0であってもユニットを宣言する必要があります!)はdisplay: noneに正しく変換されますが、

はそうではありません。後知恵では、これは実際には、移行がどのように機能するかについての理解を考えると、完全に合理的です。

grid-template-columns: 1fr 1fr 0frこれはミシェル・バーカーのもう1つの例です。同じ概念ですが、列とよりクールな効果があります。実際に応答性が高いので、この例をフルスクリーンモードで実行してください(トリックはなく、デザインだけです!)。 grid-template-columns: 1fr 1fr 1fr grid-template-columns: 1fr 1frその他の例

なぜ?

この「アニメーションモンドリアン」は、Chrome Devrelが生成するアニメーションCSSグリッドの概念の初期証明です。

および

キーワードを使用して、前に表示されるレイアウトを作成し、CSSアニメーションを使用して

をアニメーション化します。見た目ほど複雑ではありません! grid-row grid-column同じ概念ですが、ミシェルバーカーのクールな効果の詳細。あなたは良いロードスピナーを作ることができますか? span

最後に懐かしさ(私はここに年齢)を確認し、アンドリューハーバードはグリッドのようなアニメーションCSSグリッドを作ります。同じ - 同じ概念 - 他のグリッドアイテムが表示されません。しかし、心配しないでください、彼らはそこにいます。

以上がCSSグリッドのアニメーション(例の方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
CSSグリッドとは何ですか?CSSグリッドとは何ですか?Apr 30, 2025 pm 03:21 PM

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

CSS Flexboxとは何ですか?CSS Flexboxとは何ですか?Apr 30, 2025 pm 03:20 PM

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

CSSを使用してWebサイトを応答するにはどうすればよいですか?CSSを使用してWebサイトを応答するにはどうすればよいですか?Apr 30, 2025 pm 03:19 PM

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

CSSボックスサイズのプロパティは何をしますか?CSSボックスサイズのプロパティは何をしますか?Apr 30, 2025 pm 03:18 PM

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

CSSを使用してアニメーション化するにはどうすればよいですか?CSSを使用してアニメーション化するにはどうすればよいですか?Apr 30, 2025 pm 03:17 PM

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

CSSを使用してプロジェクトに3D変換を追加できますか?CSSを使用してプロジェクトに3D変換を追加できますか?Apr 30, 2025 pm 03:16 PM

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

CSSに勾配を追加するにはどうすればよいですか?CSSに勾配を追加するにはどうすればよいですか?Apr 30, 2025 pm 03:15 PM

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

CSSの擬似要素とは何ですか?CSSの擬似要素とは何ですか?Apr 30, 2025 pm 03:14 PM

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境