この記事では、純粋に CSS を使用して「単一の」div を正三角形から正八角形に変換し (単一の div は最大でも正八角形にしかなりません)、最後にアニメーションの効果を使用して正八角形に変換します。アニメーションの関係上、正多角形は三角関数の計算が多く必要となるため、便宜上正多角形の辺を100pxとしています。
正三角形
正三角形は疑似要素を使う必要はなく、p自体のボーダー幅を設定するだけで生成できます。正三角形の辺の長さと中心線。辺の長さが 100px の場合、中心線は 87px (100 x sin (60) = 87) に丸められます。
したがって、p の長さと幅を 0 に設定し、次に下枠の幅を 87px に設定する必要があります。左右の境界線 幅を50px(色を透明)に設定すると、綺麗な三角形が作れます。
width:0; height:0; border-width:0 50px 87px ; border-style:solid; border-color:transparent transparent #095;
正方形
正方形は最も単純で、長さと幅を同じ値に設定するだけです。実は他に 2 つの方法があります。1 つ目は、長さと幅を 0 に設定し、上下左右の境界線を 50px に設定することです。2 つ目は、高さを 0 に設定し、幅を 100px に設定することです。ある 横幅も100に設定してありますが、問題ありません。
.a{ width:100px; height:100px; background:#c00; } .b{ width:0; height:0; border-width:50px; border-style:solid; border-color:#095; } .c{ width:100px; height:0; border-width:0 0 100px; border-style:solid; border-color:#069; }
正五角形
正五角形は基本的な三角関数の分野に入る必要があります。まず正五角形を分解しましょう。元の p を上三角形として使用し、疑似要素を使用して下の台形を作成します。正五角形の各辺間の角度は 108 度であるため、上三角形は三角関数で計算できます。高さは 59px ( 100×cos(54))、幅は192px(100×sin(54)×2)、下の台形の高さは95px(100×sin(72))、長辺の幅は同じです上の三角形は 192px です。
.a{ position:relative; width:0; height:0; border-width:0 81px 59px; border-style:solid; border-color:transparent transparent #069; } .a:before{ position:absolute; content:""; top:59px; left:-81px; width:100px; height:0; background:none; border-width:95px 31px 0; border-style:solid; border-color:#069 transparent transparent; }
.a{ position:relative; width:100px; height:0; border-width:0 50px 87px; border-style:solid; border-color:transparent transparent #f80; } .a:before{ position:absolute; content:""; top:87px; left:-50px; width:100px; height:0; background:none; border-width:87px 50px 0; border-style:solid; border-color:#f80 transparent transparent; }
#長さと幅が決まったら、CSS で記述を開始します。
.a{ position:relative; width:0; height:0; border-width:0 90px 43px; border-style:solid; border-color:transparent transparent #09c; } .a:before{ position:absolute; content:""; top:140px; left:-112px; width:100px; height:0; border-width:78px 62px 0; border-style:solid; border-color:#09c transparent transparent; } .a:after{ position:absolute; content:""; top:43px; left:-112px; width:180px; height:0; border-width:0 22px 97px; background:none; border-style:solid; border-color:transparent transparent #09c; }
正八角形
正八角形は、実際には正七角形上の三角形を台形に変えます。中央の台形は長方形になり、正八角形のなす角度は135度となり、各領域の長さと幅を計算すると以下のようになります。
#同じ原理を理解していれば、CSS を使用する方がはるかに簡単になります。
.a{ position:relative; width:100px; height:0; border-width:0 71px 71px; border-style:solid; border-color:transparent transparent #f69; } .a:before{ position:absolute; content:""; top:171px; left:-71px; width:100px; height:0; border-width:71px 71px 0; border-style:solid; border-color: #f69 transparent transparent; } .a:after{ position:absolute; content:""; top:71px; left:-71px; width:242px; height:0; border-width:0 0 100px; background:none; border-style:solid; border-color:transparent transparent #f69; }
小结
以上就是纯粹利用CSS做出来的单一div的正多边形变换,如果熟练的话,其实加上动画效果,就可以做出像下面示例这个样子的变换动画啰!
相关教程:css视频教程
以上がCSSで単一divの正多角形変形を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Goofontsは、開発者妻とデザイナーの夫によって署名されたサイドプロジェクトであり、どちらもタイポグラフィの大ファンです。 Googleにタグを付けています

Pavithra Kodmadは、彼らが変化したWeb開発に関する最も時代を超越した記事のいくつかであると考えていることについて、人々に推奨事項を求めました

GraphQL APIの構築方法を学ぶことは非常に挑戦的です。ただし、10分でGraphQL APIを使用する方法を学ぶことができます!そして、それは私が完璧になったことがあります

ここでは、Yuanchuanからの合法的なCSSの策略があります。このCSSプロパティオフセットパスがあります。むかしむかし、それはモーションパスと呼ばれ、その後改名されました。私


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

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