CSS3 の 3D 変換に触れたばかりですが、本当に素晴らしく感じたので、その興奮を利用して自分の考えと理解を記録しました。何か間違っている場合は、修正してください。
CSS3 には 2D と 3D の 2 つの変形方法が用意されており、いわゆる変形は主に変位と回転です。2D と 3D の違いはおそらく Z 軸方向の変形があるかどうかだけです。
それでは、後で 3D 変換をよりよく理解するために、最初に 2D 変換について話しましょう。
translate() とrotate()
上記の 2 つのメソッドは 2D 変換の一般的なメソッドであり、もちろん他にもありますが、ここでは説明しません。まずはこの2つ。具体的な構文は次のようになります。たとえば、div を変換したいとします。
#div1{transform:translate(100px,100px);}
#div2{transform:rotate(50deg);}
Transform は CSS3 によって提供される属性で、特にグラフィックスの変換に使用されます。この属性は現在、ほとんどのブラウザーでサポートされていますが、時間を節約するために、3D 効果で使用される次の属性には互換性が必要です。テクノロジー自体は、後で互換性を考慮する必要はありません。
本題に戻りますが、上記の 2 つのメソッドはパラメータだけで簡単に理解できます。translate() はそれぞれ x 軸方向と y 軸方向に一定の距離を移動します。ネガティブになる。 rotate() は、原点を中心に時計回りに角度を回転させる回転メソッドです。そこで質問なのですが、その起源はどこにあるのでしょうか?変換なので、正確な変換効果を実現するには参照系が必要です。したがって、2D であっても 3D であっても、正しい座標系を見つけて、正しい座標系を見つけてください。とても大切なことなので3回言います。
一般的に、原点は要素の中心点に設定されます。もちろん、この属性を使用して、この原点を調整することもできます。ここでの 50% 50% は、要素のデフォルトの位置を表します。 center は「Others」に変更できます。たとえば、左上隅は Tansform-origin:0% 0%; と記述する必要があります。このようにして原点を調整できます。
transform 属性
2D を理解したら、さらに一歩進んでみましょう。簡単に言うと、transform 属性は x、y、z にそれぞれ設定されます。
#div1{
Transform:translateX(100px) TranslationY(100px)translateZ(100px)rotateX(30deg)rotateY(30deg)rotateZ(30deg);
}
回転部分については特別な説明が必要です、rotateX()は回転を意味しますの回転角度。初期状態では、原点は要素の中心にあり、x 軸の正の方向は原点から水平右方向、y 軸の正の方向は原点から垂直下方向です。正の Z 軸方向は原点から画面に向かう方向です。つまり、 要素が向いている方向がそれ自体の Z 軸方向です。これを必ず覚えておいてください。 結局のところ、transform は単なる属性なので、省略形は上記のようになります。カンマではなくスペースで区切られることに注意してください。また、中国語のtransformは「変身」ではなく「変身」という意味だと個人的には理解しています。変身が完了した後の様子を表します。
レンズ、シミュレートされた 3D 効果上記の変換が完了したら、3D 効果がありますか? デモを見てみましょう。
まだ変換はありません。 次に、変換属性を追加します。
確かにデフォルメされていることが分かりましたが、
しかし、
は私たちが想像していた 3D 効果とは程遠く、完全にフラットな効果であるとも言えます。実際、CSS3 の 3D 効果は、ブラウザによって計算、レンダリングされ、最終的にシミュレートされる 3 次元効果です。人の目を欺くことができる画像をシミュレートしたい場合は、遠近感、つまり被写界深度を考慮する必要があります。より簡単に言うと、手前が広く、奥が狭いということです。これが満たされた場合にのみ、CSS3 の 3D 変換で 3D 効果が得られます。そうでない場合、たとえ 3D 変換が実際に実行されたとしても、ブラウザは 3D 効果をまったく持たずに平面に投影します。では、遠近感や被写界深度を追加するにはどうすればよいでしょうか? それは非常に簡単で、1 つの属性だけで行うことができます。
perspective:500;パースペクティブ属性は、いわゆるレンズ属性であり、要素からの視野角の距離をシミュレートするために使用されます。被写界深度方向、近くの大きなものから遠くの小さなものまでを正確に表現する能力。
試してみましょう。
完璧です。これで、平面要素に 3D 変換効果が追加されました。ここで、システムは座標に注意してください。要素ですが、その Z 軸方向は div の正面が向いている位置でなければなりません。なぜ正面を強調する必要があるかというと、3D 変換により 180 度回転して背面が見えるからです。今回はZ軸方向が逆になります。前面はコンテンツを配置できる面です。
レンズ、ステージ、組み合わせ
立方体を組み立てて動かしたい場合、どうすればよいでしょうか? 「立方体」は 6 つの div で構成されており、それぞれが独自の独立した座標系を持ち、それらの連携変換を調整することでこの効果を実現することは不可能に思えます。簡単な方法はありますか? はい、組み合わせを div で囲むだけで、それに応じて内部の子要素も自然に回転します。したがって、私の理解では、コンビネーションは動くことができない死んだオブジェクトであり、ダイナミックな効果を持たせたい場合は、ステージを操作することで、コンビネーションを全方向に表示および移動させることができます。一番外側のレンズ、その内側のステージ、そしてステージ内のアセンブリの3層構造になりました。一部の専門家のブログでは、それらを「レンズ」、「空間」、「オブジェクト」と呼ぶ傾向があるかもしれません。これは 3D 効果を実現するための基礎です。
最後の「3D位置の保持」
ようやく立方体が完成し、ステージとしてdivでラップしました。立方体を別の角度から見るためにステージを回転させたかったのですが、こうなってしまいました。
立方体が平面になる!なぜこうなった?実際、よく考えてみるとわかりやすいのですが、div はもともと平面要素なので、立方体は直接それに「押しつぶされ」ます。ステージのスペースはディスプレイを収容するのに十分ではないため、この問題を解決するにはステージを拡張して属性を追加する必要があります。
transform-style:preserve-3d;
この属性は、子要素の 3D 位置を予約することを意味します。設定しない場合、デフォルトでは保持されません。つまり、子要素はフラットに表示されます。 。
この属性を追加した後を見てみましょう。
OK、キューブが出てきました。
上記は最も基本的な 3D エフェクトについての私の理解です。もちろん、3D エフェクトはそれほど単純ではありません。たとえば、あえて話さないこともあります。それについては深い経験がありませんし、3D テクニックもまだマスターしていないので、後で経験があれば必ず共有します。

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...

WebコードエディターのHTML要素分析では、多くのオンラインコードエディターを使用すると、ユーザーはHTML、CSS、およびJavaScriptコードを入力できます。最近、誰かが提案した...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター
