【CSS】三角形を作る方法

【CSS】三角形を作る方法 HTML/CSS

CSSで三角形を作る方法を紹介します。

ちょっとしたアイコン等、何かと使用する機会は多いと思います。

スポンサーリンク

サンプル1 上向き

HTML

<div class="triangle1"></div>

CSS

.triangle1 {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 50px 50px 50px;
  border-color: transparent transparent #00d9ff transparent;
}

サンプル2 右向き

HTML

<div class="triangle1"></div>

CSS

.triangle2 {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 50px 0 50px 50px;
  border-color: transparent transparent transparent #00d9ff;
}

サンプル3 下向き

HTML

<div class="triangle1"></div>

CSS

.triangle3 {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 50px 50px 0 50px;
  border-color: #00d9ff transparent transparent transparent;
}

サンプル4 左向き

HTML

<div class="triangle1"></div>

CSS

.triangle4 {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 50px 50px 50px 0;
  border-color: transparent #00d9ff transparent transparent;
}

よくある質問(FAQ)

Q. CSSのborderを使って三角形を作る仕組みを教えてください。
A. 要素のwidthとheightを0にしてborderの太さで三角形を作ります。例:上向き三角形はborder-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 20px solid red;。反対側のborderをtransparentにして三角形の方向を決めます。
Q. CSSのclip-pathを使った三角形の作り方を教えてください。
A. clip-path: polygon(50% 0%, 0% 100%, 100% 100%)で上向き三角形が作れます。clip-pathはborder法より柔軟で、任意の多角形・丸みのある図形にも対応しています。アニメーションもスムーズです。ただし要素の実際のサイズはそのままで、見た目だけ三角形になります。
Q. CSS三角形にホバーアニメーションをつけるにはどうすればよいですか?
A. border法の三角形はtransitionが効きにくいため、clip-path法がアニメーションに適しています。例:clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transition: clip-path 0.3s;でホバー時に別の形に変化させることができます。