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;でホバー時に別の形に変化させることができます。

