画像を使わない!CSSだけで矢印を作る方法【初心者向け】現役Webデザイナーが解説
初心者向けにCSSだけで矢印のアイコンを作る方法について解説しています。画像を使わずにCSSで矢印を作れるようになればサイト制作にも役立つはずです。実際にコードを書きながら例をもとに説明しているので、ぜひご覧ください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回はCSSで矢印を作る方法を説明します。
今まで画像を使って矢印をつけていたという方も、自分で書けるようになっておくと見た目の調整がしやすいでしょう。
様々な形の矢印の作り方を紹介しているので、ぜひ参考にしてみてください。
目次
そもそもCSSについてよく分からないという方は、CSSの書き方について解説した記事を読むとさらに理解が深まります。
CSSで作る矢印アイコンの書き方
CSSで作る矢印アイコンについて説明します。
画像は使わずにCSSだけを使って矢印を作成することができるので参考にしてみてください。
また、CSSのスキルアップにも使えるので、CSSのスキルアップを目指している方は、ぜひオリジナルの矢印を作ってみましょう。
まずは、簡単に矢印の書き方を紹介する上で、左上から右下へのL字矢印を作ってみようと思います。
直角に曲がる矢印になります。
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS arrow</title> <link rel="stylesheet" type="text/css" href="sample.css"> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> </head> <body> <div class="arrow"></div> </body> </html>
CSS
.arrow{
position: relative;
width: 200px;
height: 50px;
border-top: 8px solid #5bc0de;
border-right: 8px solid #5bc0de;
box-sizing: border-box;
}
.arrow::after{
content: "";
position: absolute;
bottom: -14px;
right: -17px;
border-top: 14px solid #5bc0de;
border-left: 14px solid transparent;
border-right: 14px solid transparent;
}
ブラウザでの表示を確認してみましょう。

上のような矢印をいくつか作っていきましょう。
以下で紹介している矢印は、HTMLの変更はなく、CSSの変更のみで作成可能です。
三角の矢印の作り方
次は、四角に囲まれた三角の矢印アイコンを実現します。
CSS
.arrow{
position: relative;
display: inline-block;
padding: 0 0 0 16px;
color: #000;
vertical-align: middle;
text-decoration: none;
font-size: 15px;
}
.arrow::before{
position: absolute;
top: 0;
bottom: 0;
left: 0;
margin: auto;
content: "";
vertical-align: middle;
box-sizing: border-box;
width: 12px;
height: 12px;
border: 1px solid #ff0000;
-webkit-border-radius: 25%;
border-radius: 25%;
}
.arrow::after{
position: absolute;
top: 0;
bottom: 0;
left: 0;
margin: auto;
content: "";
vertical-align: middle;
left: 5px;
box-sizing: border-box;
width: 3px;
height: 3px;
border: 3px solid transparent;
border-left: 3px solid #ff0000;
}
以下のような赤い四角で囲まれた赤の三角が入った小さなアイコンが表示されます。

このような小さなアイコンも表示させることができます。
CSS矢印はこのように「after擬似要素」、「before擬似要素」を用いながら設計していきます。
「after擬似要素」はそのクラスの直後に挿入するもので、「before擬似要素」はクラスの直前に挿入するもののことです。
このようにメインに装飾する形で図形を描いていきましょう。

beforeは要素の直前、afterは要素の直後に文字や画像を入れる擬似要素だよ。

矢印以外にもいろいろなところで使えそうですね。

次はいろいろな形の矢印を作成してみよう。
「く」の字型矢印の作り方
次は「く」の字のような型の矢印を描きます。
CSS
.arrow{
position: relative;
display: inline-block;
padding-left: 20px;
}
.arrow::before{
content: '';
width: 6px;
height: 6px;
border: 0px;
border-top: solid 2px #5bc0de;
border-right: solid 2px #5bc0de;
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
top: 50%;
left: 0;
margin-top: -4px;
}
水色の「く」の字が表示されます。

Webサイト上でもよく見るような矢印のアイコンなので、作り方を覚えておくと良いでしょう。
上向き矢印の作り方
次は上向き矢印を表現しましょう。
CSS
.arrow{
width: 0px;
border-color: #d9534f;
border-style: solid;
border-width: 30px;
border-left-color: transparent;
border-top-color: transparent;
border-right-color: transparent;
}
これも上向き矢印として使うことができます。

オーソドックスな大きな矢印の作り方
最後は、オーソドックスな大きな矢印を実現してみましょう。
CSS
.arrow {
display:inline-block;
height:40px;
width:80px;
background-color:#5bc0de;
position:relative;
top:40px;
}
.arrow:before {
position:absolute;
content:"";
width:0;
height:0;
border:60px solid transparent;
border-left:60px solid #5bc0de;
left:80px;
top:-37px;
}
スタンダードな矢印をコーディングできました。

以上、CSSで矢印を作成する書き方を説明しました。
ぜひ自分でアレンジしてみてください。

それぞれの矢印を実装できたかな?

画面で表示できました!

まずは基本の形を覚えて、大きさや色を変えてみよう。

そうですね、試してみます。
ありがとうございました!
監修してくれたメンター
| メンターOM
Webデザインの勉強のためロサンゼルスに留学。 現在もロサンゼルスで働く傍ら、フリーランスのWebデザイナーとして、 |
TechAcademyでは、初心者でもオリジナルWebサイトを公開できるオンラインブートキャンプWebデザイン講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。