1. 単純な三角形を実装する CSS ボックス モデルの境界線を使用すると、次のような三角形を実現できます。 シンプルな三角形を実現するためのCSS 実施原則: まず、要素に境界線を追加したときに境界線がどのように見えるかを見てみましょう。次のコードがあると仮定します。 <div></div> div { 幅: 50px; 高さ: 50px; 境界線: 2px 実線オレンジ; } 効果画像: 境界線の一般的な用途 これは、日常生活で境界線を使用する場合の最も一般的なケースです。境界線の幅は小さい (通常 1 ~ 2 ピクセル) ことが多いですが、このような日常的な使用法では、境界線の形成方法について誤解が生じやすく、要素の境界線が 4 つの長方形の境界線で構成されていると誤解されることがあります。 しかし、そうではありません。実際、要素の境界線は三角形で構成されています。この問題を説明するために、境界線の幅を広げ、境界線の端ごとに異なる色を設定できます。 div { 幅: 50px; 高さ: 50px; 境界線: 40px 実線; border-color: オレンジ 青 赤 緑; } 効果画像: 国境はどのように形成されるか では、さらに一歩進んで、要素のコンテンツ サイズを 0 に設定するとどうなるでしょうか? div { 幅: 0; 高さ: 0; 境界線: 40px 実線; border-color: オレンジ 青 赤 緑; } 効果画像: 要素コンテンツのサイズは0です この時点で、要素が上、下、左、右の 4 つの三角形で「接合」されていることに驚かれることでしょう。では、最終的な効果を実現するために、つまり、一番下の三角形を維持するには、どうすればよいでしょうか。とても簡単です。他の境界線の色を白または透明に設定するだけです。 div { 幅: 0; 高さ: 0; 境界線: 40px 実線; border-color: 透明 透明な赤; } 最終結果 Duang〜最後に単純な三角形が描かれます。同様に、他の辺に三角形を配置したい場合は、残りの境界エッジの色を白または透明に設定するだけです。 ただし、「非表示」の上部境界線は依然としてスペースを占有します。描画された三角形のサイズを最小限に抑えるには、上部境界線の幅も 0 に設定する必要があります (他の場合にも同様です)。 div { 幅: 0; 高さ: 0; 境界線の幅: 0 40px 40px; 境界線のスタイル: solid; border-color: 透明 透明な赤; } 2. 境界線のある三角形の実装 境界線付き三角形は、要素に境界線を追加するのと同じように、別の色の境界線が付いた三角形です。 境界線のある三角形 既存の三角形に境界線を設定するだけでは、その三角形の境界線の設定を継続することはできないため (三角形自体が境界線を使用して実装されているため)、別の方法を見つける必要があります。最も自然な方法は、三角形を積み重ねること、つまり、現在の三角形をより大きな三角形の上に積み重ねることです。上の図に示す実装方法は、黄色の三角形をより大きな青い三角形の上に配置することです。 この効果を実現するには、絶対位置決め方法を使用する必要があります。 まず外側の青い三角形を定義します。 <div id="blue"><div> #青 { 位置:相対; 幅: 0; 高さ: 0; 境界線の幅: 0 40px 40px; 境界線のスタイル: solid; border-color: 透明 透明な青; } 効果は次のとおりです。 外側の青い三角形 次に、黄色の三角形を定義する必要があります。黄色の三角形の配置は青い三角形の位置を参照する必要があるため、絶対配置方法を使用する必要があります。これを行うには、黄色の三角形を青い三角形の子要素にする必要もあります。 1 つの解決策としては、青い三角形の中に黄色い三角形を表す追加のタグを定義することですが、タグを節約するためには、疑似要素を使用する方がよいでしょう。 #blue:後{ コンテンツ: ""; 幅: 0; 高さ: 0; 位置: 絶対; 上: 0px; 左: 0px; 境界線の幅: 0 40px 40px; 境界線のスタイル: solid; border-color: 透明 透明黄色; } 結果は次のとおりです。 黄色の三角形を定義する 黄色の三角形と青色の三角形の間のオフセットに特に注意してください。このオフセットは、黄色の三角形の境界の 次のような疑問があるかもしれません。なぜ黄色の三角形が左に一定の距離だけオフセットされているのでしょうか。このように、青い三角形と完全に重なるはずではないでしょうか。 黄色の三角形は青い三角形と完全に重なっています そのような疑問をお持ちであれば、それは絶対位置についての理解が不十分であることを意味します。絶対配置領域は、絶対配置された親要素の 絶対位置指定領域 黄色の三角形の場合、 黄色の三角形のコンテンツ領域もその頂点に位置し、左右に 40px の境界線が設定されているため、黄色の三角形のコンテンツ領域は右に 40px オフセットされ、前述の効果が形成されます。 黄色の三角形の位置を 黄色の三角形は左: 0、下: 0 に設定されています 絶対配置を理解したら、元のコードに少し変更を加えて、黄色の三角形の頂点を青い三角形の頂点と一致させるだけです。同時に、黄色の三角形のサイズを適切に縮小する必要があります(相似三角形に比例して)。 #blue:後{ コンテンツ: ""; 位置: 絶対; 上: 0px; 左: -38px; 境界線の幅: 0 38px 38px; 境界線のスタイル: solid; border-color: 透明 透明黄色; } 得る: 黄色の三角形と青色の三角形の頂点は同じです。 上記のコードでは、子要素に 最後のステップは、 #blue:後{ コンテンツ: ""; 位置: 絶対; 上: 1px; 左: -38px; 境界線の幅: 0 38px 38px; 境界線のスタイル: solid; border-color: 透明 透明黄色; } 最終的な効果を得る: 最終結果 境界線付きの三角形を描く方法を学んだので、次のように三角形の矢印を実装するのは問題ありません。 三角矢印 実装コード: #blue:後{ コンテンツ: ""; 位置: 絶対; 上: 2px; 左: -38px; 境界線の幅: 0 38px 38px; 境界線のスタイル: solid; 境界線の色: 透明 透明 #fff; } 3. 他の角度の三角形を描く 次のような他の角度の三角形を描きます。 直角三角形 または: 左 右 三角形 実際、それはさらに単純で、それらはすべて前に描かれた三角形に基づいています。直角三角形を描画する場合は、左の境界を 0 に設定します。直角三角形を描画する場合は、右の境界を 0 に設定します (他の状況でも同様です)。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: Tomcat の静的ページ (html) で中国語の文字化けが発生する問題の究極の解決策
>>: MySQL で B+ ツリー インデックスを使用する利点は何ですか?
nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...
以前、「MySQL でコミットされていないトランザクション情報を検索する方法」というタイトルのブログ...
序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...
1. MacにMySQLデータベースをインストールする1. MySQLデータベースをダウンロードする...
目次1. 必要な環境をインストールする //gccをインストールする yum で gcc-c++ を...
Docker Toolbox は、Windows 10 Professional より前のバージョン...
概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...
React Native は、現在人気のオープンソース JavaScript ライブラリ React...
目次1. 覚えておくべき知識1. 変数タイプ2. シェル変数の説明3. シングルクォート、ダブルクォ...
実際には、N 秒後にページを自動的にジャンプさせるにはどうすればよいかという問題によく遭遇します。私...
タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...
チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...
この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...
いいえnvmはnodejsの複数のバージョンを管理する役割を担っています。インストール: https...
序文先ほどのプロジェクトを参考にすると、環境は整いました。プロジェクトの準備と検証の段階で、問題が発...