ホームへ

CSSでborderを使わないで三角形を作る方法

2020年02月17日

こんにちは。テイクです。ホームページを作り続けて9年になります。

CSSで三角形を作る方法といえばborderを使う方法です。これは調べればたくさん情報がでてきます。

この記事ではCSSでborderを使わないで三角形を作る方法をお伝えします。
backgroudを使います。

完成イメージ

html

<div class="triangle"></div>

CSS

.triangle{
    width: 80px;
    height: 100px;
    background:
    linear-gradient(to bottom left, transparent 50%, red 51%) no-repeat top left/100% 50%,
    linear-gradient(to top left, transparent 50%, red 51%) no-repeat bottom left/100% 50%;
}

widthとheightを調整することで三角形のサイズも直感的に変更できます。

解説

backgroundではグラデーションを表現することができます。

.triangle1{
    width: 80px;
    height: 100px;
    background:
    linear-gradient(black,red)
}

向きを左下から~に変えます。

background:linear-gradient(to bottom left,black,red)

グラデーションの開始位置、終了位置をそれぞれ中央(50%)にします。どちらも50%にすると境目がガキガキになるので51%にしています。

background:linear-gradient(to bottom left,black 50%,red 51%)

この三角を上半分に詰めます。heightは変更していません。

background:linear-gradient(to bottom left,black 50%,red 51%) no-repeat top left/100% 50%

同じ要領で左上からのグラデーションを重ね掛けします。

background:
linear-gradient(to bottom left,black 50%,red 51%) no-repeat top left/100% 50%,
linear-gradient(to top left,gray,blue)

グラデーションの開始位置、終了位置をそれぞれ中央(50%)にします。

background:
linear-gradient(to bottom left,black 50%,red 51%) no-repeat top left/100% 50%,
linear-gradient(to top left,gray 50%,blue 51%)

この三角を下半分に詰めます。

background:
linear-gradient(to bottom left,black 50%,red 51%) no-repeat top left/100% 50%,linear-gradient(to top left,gray 50%,
blue 51%) no-repeat bottom left/100% 50%;

あとは色を変えれば完成です。
背景を透明にするにはtransparentを指定するとOKです。

CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。

↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓

↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。

まとめ

borderを使わず、backgroudで三角形を作ることができました。
width,heightに応じて形が変わるのでborderを使うパターンより様々な表現ができるかと思います。

今回は左向きの三角形でしたが、応用すれば向きの変更や直角三角形もできますね。

以上、CSSでborderを使わず三角形を作る方法でした。

「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。

CSSやhtmlをマンガで学ぶ