CSSのborderで三角形を作る

プログラミング言語

CSSのborderで三角形を作ります。

図形や文字を使わないで画面に三角形を置きたいのであれば、こちらの方法を取ることになります。

CSSの三角形のコード例を記載する

HTMLにsankakuクラスのdivを記載します。

一応ですが、クラス名のsankakuは適当ですので任意のクラス名で構いません。

<div class=sankaku></div>

CSSでsankakuクラスのボーダーを設定します。

.sankaku {
 /* borderを設定した上で透明にする */
 border: solid 20px transparent;
 /* 下のborderのみ緑にする */
 border-bottom-color: green;
}

これで三角形を表示できます。

borderで三角形を作れる理由を確認する

ではなぜborderで三角形を作れるのかを簡単に説明します。

最初は私もなぜborderを設定しただけで三角形が作れるのか意味が分かりませんでした。

値がある要素のborderを見て、値がない要素のborderを見ると分かりやすいです。

値がある要素のborderを見る

値がある要素のborderは下記のようになります。

注目するべきはborderが4辺で構成さらていて、角がとがっているということです。

値がない要素のborderを見る

要素の値をなくしてみるとborderはどのようになるでしょうか。

答えは下記になります。

4辺のborderのとがった部分だけが残って組み合わさって四角形になります。

残したい三角形以外を透明にする

四角形にした状態から残したい三角形以外を透明にします。

つまり残したいborder以外を透明にします。

上記のコード例ではいったん4辺のborderをtransparentで透明にし、border-bottom-colorで底の1辺だけを緑色にしています。

そうすると下記になります。

三角形の完成です。

これがborderで三角形を作成できる理由です。

三角形の位置を変更する

三角形の位置を変更するには、positionをabsoluteにしてください。

positionは要素がどのように配置されるかを規定します。

absoluteは他の要素に寄らないようにできます。

そしてtop、right、bottom、leftを指定することで場所を変更できます。

下記は例です。

position: absolute;
top: 20px;
left:10%;

三角形を作成して自由に配置しましょう。

タイトルとURLをコピーしました