検索
ホームページウェブフロントエンドCSSチュートリアルCSSで単一divの正多角形変形を行う方法

この記事では、純粋に CSS を使用して「単一の」div を正三角形から正八角形に変換し (単一の div は最大でも正八角形にしかなりません)、最後にアニメーションの効果を使用して正八角形に変換します。アニメーションの関係上、正多角形は三角関数の計算が多く必要となるため、便宜上正多角形の辺を100pxとしています。

正三角形

正三角形は疑似要素を使う必要はなく、p自体のボーダー幅を設定するだけで生成できます。正三角形の辺の長さと中心線。辺の長さが 100px の場合、中心線は 87px (100 x sin (60) = 87) に丸められます。

CSSで単一divの正多角形変形を行う方法

したがって、p の長さと幅を 0 に設定し、次に下枠の幅を 87px に設定する必要があります。左右の境界線 幅を50px(色を透明)に設定すると、綺麗な三角形が作れます。

width:0;
height:0;
border-width:0 50px 87px ;
border-style:solid;
border-color:transparent transparent #095;

CSSで単一divの正多角形変形を行う方法

正方形

正方形は最も単純で、長さと幅を同じ値に設定するだけです。実は他に 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;
}

CSSで単一divの正多角形変形を行う方法

正五角形

正五角形は基本的な三角関数の分野に入る必要があります。まず正五角形を分解しましょう。元の p を上三角形として使用し、疑似要素を使用して下の台形を作成します。正五角形の各辺間の角度は 108 度であるため、上三角形は三角関数で計算できます。高さは 59px ( 100×cos(54))、幅は192px(100×sin(54)×2)、下の台形の高さは95px(100×sin(72))、長辺の幅は同じです上の三角形は 192px です。

CSSで単一divの正多角形変形を行う方法

#原理を理解した後は、疑似要素を使用して一致させたり作成したりできます。

.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;
    }

CSSで単一divの正多角形変形を行う方法

正六角形

純粋な CSS の方向から見た場合、正六角形の各角度は 120 度です。 , 正五角形の三角形を変更して、上下の台形を組み合わせた正六角形を作るだけです. 台形の長辺は 200px (100 x cos (60) x 2 100 ), 高さは台形は 87 ピクセル (100 x sin(60)) です。


CSSで単一divの正多角形変形を行う方法

つまり、正五角形のCSSを少し変更することで、正六角形を作ることができます。

.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で単一divの正多角形変形を行う方法

正七角形

after 疑似要素は、正七角形の先頭で使用する必要があります。元の p を上の三角形、擬似要素を中央の台形、そして別の擬似要素を下の台形として使用し、3 つのメモリ ブロックに分解する必要があります。正七角形の角度は整数ではありません。 128と4/7度、小数点第2位は約128.57となるので、計算結果は下図のようになりますが、長さと幅がどのくらいなのかをしっかりと把握しておくことがポイントです。


CSSで単一divの正多角形変形を行う方法#長さと幅が決まったら、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;
  }

CSSで単一divの正多角形変形を行う方法 正八角形

正八角形は、実際には正七角形上の三角形を台形に変えます。中央の台形は長方形になり、正八角形のなす角度は135度となり、各領域の長さと幅を計算すると以下のようになります。


CSSで単一divの正多角形変形を行う方法#同じ原理を理解していれば、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;
  }

1CSSで単一divの正多角形変形を行う方法

小结

以上就是纯粹利用CSS做出来的单一div的正多边形变换,如果熟练的话,其实加上动画效果,就可以做出像下面示例这个样子的变换动画啰!

CSSで単一divの正多角形変形を行う方法

相关教程:css视频教程

以上がCSSで単一divの正多角形変形を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Google Fontsをタグ付けし、Goofonts.comを作成する方法Google Fontsをタグ付けし、Goofonts.comを作成する方法Apr 12, 2025 pm 12:02 PM

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

時代を超越したWeb開発記事時代を超越したWeb開発記事Apr 12, 2025 am 11:44 AM

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

セクション要素との取引セクション要素との取引Apr 12, 2025 am 11:39 AM

2つの記事がまったく同じ日に公開されました。

graphQlの練習JavaScript APIでクエリをクエリしますgraphQlの練習JavaScript APIでクエリをクエリしますApr 12, 2025 am 11:33 AM

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

コンポーネントレベルのCMSコンポーネントレベルのCMSApr 12, 2025 am 11:09 AM

コンポーネントがデータが近くに住んでいる環境に住んでいる場合、視覚コンポーネントと

円にタイプを設定します...オフセットパス付き円にタイプを設定します...オフセットパス付きApr 12, 2025 am 11:00 AM

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

CSSで「戻る」ことは何をしますか?CSSで「戻る」ことは何をしますか?Apr 12, 2025 am 10:59 AM

Miriam Suzanneは、このテーマに関するMozilla開発者のビデオで説明しています。

現代の恋人現代の恋人Apr 12, 2025 am 10:58 AM

私はこのようなものが大好きです。

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ヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

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

メモ帳++7.3.1

メモ帳++7.3.1

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

MantisBT

MantisBT

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