検索
ホームページウェブフロントエンドCSSチュートリアル3DのCSS:箱の代わりにキューブで考えることを学ぶ

3DのCSS:箱の代わりにキューブで考えることを学ぶ

CSSへの私の旅は、あなたの典型的なフロントエンド開発者のストーリーではありませんでした。私はJavaプログラマーとしてスタートしました。私の最初のCSSは、Visual Studio内での色の選択に限定されています。

フロントエンドの開発とその後のCSSに対する私の情熱は、後に点火し、CSS3の増加と一致しました。 3Dとアニメーションの魅力は私を魅了し、レイアウトやカラー理論よりもCSSの理解をより深く形作りました。

3D CSS効果の作成にかなりの時間を費やしてきたので、ワークフローを改良しました。この記事では、現在のアプローチを共有し、3D CSSスキルを向上させるためのヒントとコツを提供しています。

立方体:あなたの基本的なビルディングブロック

ほとんどの3D作品では、立方体は主要な要素として機能します。より複雑な形状は達成可能ですが、細部へのより大きな注意を必要とします。特に、曲線は課題を提示しますが、それらに対処するための手法は存在します(後で説明します)。

ここでは基本的な立方体を作成することはカバーされていません。アナチューダーの優れた投稿またはこのスクリーンキャストのガイダンスを参照してください。基本的に、親要素は、その顔を表す6つの子供要素を含む立方体をカプセル化します。重要なことに、 transform-style: preserve-3d;理想的にはグローバルに適用する必要があります。

 * {transform-style:preserve-3d; }

複雑な3Dモデルの場合、シーン全体を立方体のアセンブリとして視覚化します。 3Dブックを考えてみましょう:4つの立方体 - 各カバーに1つ、背骨に1つ、ページ用に1つは、最後の仕上げを追加します。

シーンの構築:基盤の確立

立方体をレゴのレンガと考えてください。プロセスを簡素化するには、「平面」要素、つまり3Dモデルが残る基礎面を作成することが含まれます。これにより、回転と動きが簡素化されます。

私の好みのアプローチは、x軸とy軸に沿って平面を回転させてから、 rotateX(90deg)で平らにすることから始まります。その後、新しい立方体を追加するには、それらを平面要素内に配置し、 position: absolute

 。飛行機 {
  変換:rotatex(calc(var( -  rotate-x、-24) * 1deg))rotatey(calc(var( -  rotate-y、-24) * 1deg))rotatex(90deg)translate3d(0、0、0);
}

ボイラープレートとパグを使用した開発を合理化します

多数の立方体を作成する繰り返しの性質は、合理化されたアプローチを必要とします。テンプレートエンジンであるパグを活用して、ミックスインを介して立方体構造を生成します。 (必要に応じて、簡単なパグの紹介を利用できます。)

パグを使用した典型的なシーン構造は、次のようになるかもしれません:

 Mixin Cuboid(className)
  .cuboid(class = classname)
    //立方体の各面の6つのdiv要素...

私の立方体クラスに対応するCSSは次のとおりです。

 .cuboid {
  // ...(CSS for Cuboid Styling)...
}

...(立方体の各顔のCSSルール)...

CSS変数のパワーを活用します

CSS変数(カスタムプロパティ)を広範囲に使用すると、効率が大幅に向上します。私の立方体は変数によって駆動されます:

  • --width :飛行機の立方体幅
  • --height :飛行機の立方体の高さ
  • --depth :立方体の深さ
  • --x :x平面上の位置
  • --y :Y飛行機の位置

vminは主に応答性のサイジングに使用されます。平面は平らに敷設されており、直感的な高さ、幅、深さの参照が可能になります。

dat.guiでのデバッグ:リアルタイムの制御と検査

便利なdat.guiライブラリは、リアルタイムのデバッグを容易にします。ランタイム中にCSS変数を変更することができ、回転、位置、および寸法を簡単に調整できます。 dat.guiを使用して平面を回転させると、空間関係の視覚化に役立ちます。

センタリングとポジショニング:精度と組織

各立方体は意図的に中央にあり、平面の半分と半分の下にあります。これにより、アニメーション、特にZ軸回転が簡素化されます。複雑なシーンの場合、サブプレーンは組織を強化し、セクションの独立した操作を可能にします。

美学:洗練と視覚的魅力

構造完了後、フォーカスは美学に移行します。色と色合いにCSS変数を一貫して使用すると、視覚的な調和が強化されます。背景画像と擬似要素は、詳細とテクスチャを追加します。 brightness()などのフィルターは、顔全体にシェーディングを微妙に調整できます。

深さの幻想:煙と鏡のテクニック

時々、「Faux」3D効果は、より少ない要素で説得力のある深さを作成します。戦略的に配置および回転したフラット要素は、3D形状を模倣できます。

不規則な形状への対処:創造的な問題解決

不規則な形状には、ケースバイケースのソリューションが必要です。ポリゴンは曲線を近似できますが、視点のトリックは深さの幻想を生み出すことができます。

Z戦闘:重複する要素の競合を解決します

重複する要素が点滅するZ戦闘は、競合を防ぐために慎重なDOM順序とわずかな位置オフセットによって対処されます。

結論:3D CSSの旅に乗り出します

3D CSSの課題を受け入れ、さまざまなテクニックを実験し、作成を共有します。忍耐と創造性は、このやりがいのある努力の重要な要素であることを忘れないでください。

以上が3DのCSS:箱の代わりにキューブで考えることを学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
WordPressブロックと要素にボックスシャドウを追加しますWordPressブロックと要素にボックスシャドウを追加しますMar 09, 2025 pm 12:53 PM

CSS Box-Shadowおよびアウトラインプロパティは、WordPress 6.1でTheme.jsonサポートを獲得しました。実際のテーマでどのように機能するか、そしてこれらのスタイルをWordPressブロックと要素に適用するために必要なオプションのいくつかの例を見てみましょう。

GraphQLキャッシングの使用GraphQLキャッシングの使用Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

最初のカスタムSvelteトランジションを作成します最初のカスタムSvelteトランジションを作成しますMar 15, 2025 am 11:08 AM

Svelte Transition APIは、コンポーネントがカスタムSVELTE遷移を含むドキュメントを入力または離れるときにアニメーション化する方法を提供します。

上品でクールなカスタムCSSスクロールバー:ショーケース上品でクールなカスタムCSSスクロールバー:ショーケースMar 10, 2025 am 11:37 AM

この記事では、Scrollbarsの世界に飛び込みます。私は知っています、それはあまりにも魅力的ではありませんが、私を信じてください、よく設計されたページは手をつないで行きます

ショー、Don' t Tellショー、Don' t TellMar 16, 2025 am 11:49 AM

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

Redwood.jsと動物相を使用してイーサリアムアプリを構築しますRedwood.jsと動物相を使用してイーサリアムアプリを構築しますMar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

NPMコマンドは何ですか?NPMコマンドは何ですか?Mar 15, 2025 am 11:36 AM

NPMコマンドは、サーバーの開始やコンパイルコードなどの1回限りのプロセスまたは継続的に実行されるプロセスとして、さまざまなタスクを実行します。

特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x)特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x)Mar 24, 2025 am 10:37 AM

先日、エリック・マイヤーとおしゃべりをしていたので、形成期のエリック・マイヤーの話を思い出しました。 CSS特異性に関するブログ投稿を書きました

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。