記事内にはプロモーションが含まれています

【CSS】「くの字」矢印の作り方!擬似要素での実装や角度・丸みの調整テクニック

【CSS】「くの字」矢印の作り方!擬似要素での実装や角度・丸みの調整テクニック CSS

Webサイトのデザインにおいて、リンクやメニューの開閉、スライダーの次へボタンなど、あらゆる場面で使われるのが「矢印」アイコンです。

特にシンプルでスタイリッシュな「くの字」型の矢印(シェブロン)は、どんなデザインにも馴染みやすく、非常に人気があります。

昔は画像で作ることもありましたが、現在はCSSだけで描画するのが主流です。
CSSなら色やサイズを自由に変更でき、解像度を気にせずきれいに表示できるからです。

この記事では、CSSを使って「くの字」矢印を作る基本的な仕組みから、上下左右への向きの変更、さらには角を丸くしたり二重線にしたりする応用デザインまで、コピペで使えるコードとともに徹底解説します。

【本記事の信頼性】
プロフィール
執筆者:マヒロ
  • 執筆者は元エンジニア
  • SES⇒大手の社内SE⇒独立
  • 現在はプログラミングスクールを運営
  • モットーは「利他の精神」
💻 本記事の検証環境(2026年2月確認)
  • OS:Windows 11 / macOS Sequoia
  • IDE:Visual Studio / VS Code / IntelliJ IDEA
  • その他:Chrome DevTools / 各言語最新安定版

※本メディアでは、上記環境にてコードの動作と情報の正確性を検証済みです。

CSSで「くの字」矢印を作る基本の仕組み

まずは、CSSでどのようにして「く」の形を作っているのか、その原理を理解しましょう。
仕組みがわかれば、サイズや太さの調整も自由自在です。

基本となる考え方は、「正方形の枠線(border)を2辺だけ引いて、それを回転させる」というものです。

基本的な実装コード

くの字

<div class="arrow"></div>

<style>
.arrow {
    width: 20px;       /* 矢印の大きさ(幅) */
    height: 20px;      /* 矢印の大きさ(高さ) */
    border-top: 4px solid #3498db;  /* 上の線 */
    border-right: 4px solid #3498db; /* 右の線 */
    transform: rotate(45deg);       /* 45度回転させる */
}
</style>
まず、width と height で正方形のボックスを作ります。
そこに border-top(上線)と border-right(右線)を指定することで、正方形の右上部分だけに線が引かれた状態、つまり「L」を逆にしたような形を作ります。
この状態から transform: rotate(45deg); を使って時計回りに45度回転させると、角が右を向いた「くの字」の矢印が完成します。
線の太さを変えたい場合はborderの数値を、全体の大きさを変えたい場合はwidthとheightの数値を変更します。

上下左右の向きを自在に変える方法

基本の形ができれば、あとは回転させる角度を変えるだけで、矢印を好きな方向に向けることができます。

transform: rotate() の数値を調整して、上下左右それぞれの向きを作ってみましょう。

くの字
/* 右向き(デフォルト) */
transform: rotate(45deg);

/* 下向き(アコーディオンメニューなどに) */
transform: rotate(135deg);

/* 左向き(「戻る」ボタンなどに) */
transform: rotate(-135deg); /* または 225deg */

/* 上向き(「トップへ戻る」などに) */
transform: rotate(-45deg); /* または 315deg */
border-top と border-right を使った場合、基本の形は「右上」に角がある状態です。
これを基準に回転角度を考えます。
右に向けるには45度、下に向けるにはさらに90度回して135度、左に向けるには反対側に回して-135度(または225度)、上に向けるには-45度(または315度)を指定します。
これらをクラスで使い分けることで、あらゆる方向の矢印に対応できます。

擬似要素(::before/::after)を使ってリンクに矢印を付ける

実務で最も多いのが、リンクボタンやリストの横に矢印アイコンを添えるパターンです。

HTMLに空の div タグを書くのはスマートではありません。

そこで、CSSの擬似要素(::before や ::after)を使って、リンクタグの中に自動的に矢印を生成する方法を紹介します。

リンクボタンの実装例

くの字

<a href="#" class="btn-arrow">詳しく見る</a>

<style>
.btn-arrow {
    display: inline-block;
    padding: 15px 40px 15px 20px; /* 右側に矢印用の余白を確保 */
    background: #2ecc71;
    color: white;
    text-decoration: none;
    position: relative; /* 矢印の配置基準 */
    border-radius: 4px;
}

.btn-arrow::after {
    content: '';
    width: 8px;
    height: 8px;
    border-top: 2px solid white;
    border-right: 2px solid white;
    transform: rotate(45deg);
    position: absolute; /* 絶対配置で位置を決める */
    top: 50%;
    right: 15px;
    margin-top: -5px; /* 矢印の高さの半分だけ上にずらして中央配置 */
}
</style>
リンクの a タグに対して position: relative; を指定し、擬似要素 ::after の基準点とします。
content: ''; を記述することで擬似要素を生成し、そこに先ほどと同じ要領で枠線と回転を指定して矢印を作ります。
配置は position: absolute; を使い、top: 50%; で垂直方向の中央に寄せつつ、margin-top で微調整を行っています。
この方法はボタンのサイズが変わっても矢印が常に中央に配置されるため、非常に汎用性が高いテクニックです。

おしゃれなデザインバリエーション

単なる線だけの矢印だけでなく、少し工夫を加えることでデザインの幅が広がります。
角を丸くして柔らかい印象にしたり、二重線にして装飾感を強めたりする方法を見てみましょう。

角を丸くした矢印(border-radius)

くの字
.arrow-round {
    width: 30px;
    height: 30px;
    border-top: 6px solid #e67e22;
    border-right: 6px solid #e67e22;
    transform: rotate(45deg);
    border-radius: 4px; /* 角に丸みをつける */
}
コード解説通常のボックスと同じように border-radius プロパティを追加するだけで、矢印の角を丸くすることができます。
角ばった矢印はシャープでクールな印象を与えますが、丸みをつけることで親しみやすく、優しいデザインにマッチするようになります。
線の太さが太いほど、丸みの効果が分かりやすくなります。

二重線の矢印(border-style: double)

くの字
.arrow-double {
    width: 20px;
    height: 20px;
    border-top: 4px double #9b59b6;   /* doubleを指定 */
    border-right: 4px double #9b59b6; /* doubleを指定 */
    transform: rotate(45deg);
}
線の種類を指定する border-style を、通常の solid(実線)から double(二重線) に変更するだけの簡単アレンジです。
ただし、二重線に見えるようにするためには、ある程度の border-width(太さ)が必要です。
細すぎると1本の線に見えてしまうため、最低でも3px以上で調整することをおすすめします。

どうしても面倒な時はジェネレーターを活用しよう

「頭の中で角度を計算するのが面倒」「コードを書く時間を短縮したい」という場合は、Web上のジェネレーターツールを活用するのも一つの手です。

画面上でプレビューを見ながら、線の太さや角度、色を調整し、生成されたCSSコードをコピーするだけで実装できます。

  • CSS Arrow Please!: 吹き出し型の矢印を作れる老舗ツール。
  • CSS ICON (cssicon.space): 矢印を含む様々なアイコンのCSSコードを取得できるサイト。

HTML/CSSのスキルを活かして年収を上げる方法

以上、CSSで「くの字」矢印を作る方法について解説してきました。

なお、HTMLやCSSのスキルがある場合には、「副業で稼いで年収を上げる」といったことが可能です。
HTML/CSSのスキルを持つ人は多いものの、その分案件数も多く、副業エージェントやフリーランスエージェントを利用することで予想外の高単価案件が見つかることもあります。
エージェントサービスは、登録も利用もすべて完全無料なので、どんな求人や案件があるのか気になる方は、気軽に利用してみるとよいでしょう。
エンジニアのキャリア・スキルアップ相談窓口
当ブログの読者に選ばれている、実績豊富な転職エージェントを厳選しました。
【転職】年収・環境を改善したい
年収アップにこだわりたい方 (平均アップ額138万円の実績)
未経験・経験者問わず幅広く探したい方
業界に精通した担当者に相談したい方
ゲーム業界への転職を志望する方
エンジニア未経験からキャリアを築く方
【独立】フリーランスとして稼ぎたい
国内最大級のフリーランス案件数から比較したい方
週1〜3日など柔軟な働き方を希望する方
【学習】スキルに不安のある方向け(格安スクール「デイトラ」)