CSSで三角形を実装するにはaspect-ratioとclip-pathを使用するのが簡単 -CSS Triangle Shapes
Post on:2024年2月7日
sponsorsr
HTMLはdiv要素一つだけ(もしくはimg要素一つだけ)、あとはCSSをコピペするだけで三角形を実装できるCSS Triangle Shapesを紹介します。
CSSの三角形は、一昔前はborderで実装していましたが、最近では2つのプロパティ(aspect-ratio, clip-path)で実装します。どうやって実装するんだっけ? というときに覚えておくと、さくっと利用できるので便利です。


CSSで三角形を実装する最近の方法
まずは、三角形をCSSで実装する方法を見てましょう。
これまでのCSSだと、divなどの矩形にborderプロパティで太いボーダーを設定し、三角形の部分だけ残して使用していました。
| 1 2 3 4 5 6 | .triangle{   border-top: 100px solid #ccc;   border-right: 100px solid transparent;   border-bottom: 100px solid transparent;   border-left: 100px solid transparent; } | 

borderで三角形を実装する仕組み
最近はaspect-ratioとclip-pathで実装します。
※IEを除く、すべてのブラウザにサポートされています。
| 1 2 3 4 | .triangle {   aspect-ratio: 1/cos(30deg);   clip-path: polygon(50% 0,100% 100%,0 100%);; } | 
- aspect-ratioで、三角形の形状を設定。
- clip-pathの3点ポリゴンで、三角形の各頂点を設定。
このaspect-ratioとclip-pathを使用した実装方法はdiv要素だけでなく、img要素を含むあらゆる種類の要素で機能します。

aspect-ratioとclip-pathで三角形を実装する仕組み
画像: @ChallengesCssより
CSSで三角形を作成するジェネレター
CSS Triangle Shapesを作成したのは以前紹介したCSS Loaders(紹介記事)やCSS Ribbon Shapes(紹介記事)と同じ作者で、前回はCSSで実装されたローダーとリボンでしたが、今回はCSSで三角形です。

使い方は他と同様に簡単、登録など面倒なことは一切不要です。
まずは、サイトにアクセスして、CSSで実装したい三角形を選びます。

「Copy the CSS」をクリックして、CSSをコピーします。

三角形をクリックして、CSSをコピー
では、三角形を実装してみましょう。
HTMLは共通で、div要素一つだけ(もしくはimg要素一つだけ)です。
| 1 | <div class="triangle"></div> | 
あとは、さきほどコピーしたCSSをペーストするだけ。
※コピーしたCSSにはコメントでHTMLも含まれていました。
| 1 2 3 4 5 6 7 | /* HTML: <div class="triangle"></div> */ .triangle {   width: 180px;   aspect-ratio: 1/cos(30deg);   clip-path: polygon(50% 0,100% 100%,0 100%);;   background: linear-gradient(45deg,#FA6900,#C02942); } | 
これで簡単に三角形をCSSで実装できます。
参考:
三角形は、img要素でも実装できます。

img要素で実装した三角形
CSSで実装された三角形は現在、48種類ほどあり、さまざまな三角形があります。




sponsors















