CSS

CSSのみで三角形を作る仕組み

ここでは吹き出しなどのデザインでよく使われている三角形の仕組みについて見ていきます。今まで何となくCSSの三角形を理解してきた方もここでその仕組みが明確に理解できるようになる!かどうかは分かりませんが、少しはお役に立てると思います。

CSSのborderプロパティで作る三角形の仕組み

まずは、三角形ではなく四角形から見ていきましょう。divにクラス名が入っていてborderが指定されているシンプルなデザインです。

See the Pen triangle01 by kenichi (@ken81) on CodePen.

borderのそれぞれの辺を別の色に指定してみます。ここまでは何も不思議はありません。

See the Pen triangle02 by kenichi (@ken81) on CodePen.

別々の色のboedrの線の太さを変えてみました。四つ角の色の境目が斜めになっているのが確認できるでしょうか?この「斜め」が三角形を作る上でポイントになります。

See the Pen triangle03 by kenichi (@ken81) on CodePen.

線の太さを最大まで太くするとこうなります。三角形が4つ見えてきましたね。

See the Pen triangle04 by kenichi (@ken81) on CodePen.

まずは、上向きの三角形を作ってみたいのでborder-topを削除しました。三角形を作りたいときは三角形が向いている方向(上向きなら上の)borderを取り除きます。

See the Pen triangle05 by kenichi (@ken81) on CodePen.

不要なスタイルシートを削除します。box-sizingの指定をなくしてwidthheightはゼロにします。

See the Pen triangle06 by kenichi (@ken81) on CodePen.

左右のborderの色をtransparentにしたら、三角形ができました。

See the Pen triangle07 by kenichi (@ken81) on CodePen.

高さを調整して正三角形を作ってみました。

See the Pen triangle08 by kenichi (@ken81) on CodePen.

ここでサイズの仕組みについて見てみましょう。

あくまでも上向きの三角形の場合の話にはなりますが、それぞれborder-right, borde-leftの合計が底辺の長さに、border-bottomが三角形の高さを決めています。昔学校で教わった三角形の数式とかを思い出していただければ正確な三角形の割り出し方とかできると思います。

borderの辺を入れ替えれば他の向きの三角形を作ることもできます。

See the Pen triangle09 by kenichi (@ken81) on CodePen.

See the Pen triangle10 by kenichi (@ken81) on CodePen.

See the Pen triangle11 by kenichi (@ken81) on CodePen.

よくある吹き出しのスタイルシートはこれらの三角形のサイズを調整したあと、position:absolute;で場所を調整して作ってあります。

ちなみに吹き出しを作るだけでしたらここのサービスを使うと簡単ですよ。
吹き出しジェネレーター「cssarrowplease」

最近の記事

  1. CSS

    レスポンシブウェブデザインの基本|メディアクリエリの設定
  2. WordPress

    WordPressの立ち上げからサイト構築までの初期手順
  3. CSS

    擬似クラス「:first-child」「:last-child」はどうして効かな…
  4. CSS

    CSS|中央寄せが効かないときは・・・
  5. CSS

    要素の配置が簡単に決まるFlexboxの使い方
PAGE TOP