画像を使わない!CSSだけで矢印を作る方法【初心者向け】

初心者向けにCSSだけで矢印のアイコンを作る方法について解説しています。画像を使わずにCSSで矢印を作れるようになればサイト制作にも役立つはずです。実際にコードを書きながら例をもとに説明しているので、ぜひご覧ください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回はCSSで矢印を作る方法を説明します。

今まで画像を使って矢印をつけていたという方も自分で書けるようになっておくと見た目の調整がしやすいでしょう。様々な形の矢印の作り方を紹介しているので、ぜひ参考にしてみてください。

そもそもCSSが何かよく分からない場合は、先にCSSの書き方をご覧ください。

 

なお本記事は、TechAcademyのWebデザインオンラインブートキャンプのカリキュラムをもとに執筆しています。

 

大石ゆかり

田島メンター!!画面に矢印を表示したいのですが、CSSでなんとか作成できないでしょうか~?

田島悠介

beforeとafterの疑似要素を使ったり、borderの色をtransparentで透明にしたりすることで実装できるよ。

大石ゆかり

色々複雑そうですね。

田島悠介

とりあえずシンプルな例で、どのような形になるのか見てみよう。

 

目次

 

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;
}

ブラウザでの表示を確認してみましょう。

スクリーンショット 2016-08-31 10.20.42

上のような矢印をいくつか作っていきましょう。

以下で紹介している矢印は、HTMLの変更はなく、CSSの変更のみで作成可能です。

 

[PR] 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_12_02

このような小さなアイコンも表示させることができます。

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;
}

水色の「く」の字が表示されます。

css_12_03

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_12_04

 

オーソドックスな大きな矢印の作り方

最後は、オーソドックスな大きな矢印を実現してみましょう。

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_12_05

 

 

以上、CSSで矢印を作成する書き方を説明しました。

ぜひ自分でアレンジしてみてください。

 

田島悠介

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

大石ゆかり

画面で表示できました!

田島悠介

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

大石ゆかり

そうですね、試してみます。ありがとうございました!

また、現役エンジニアから学べる無料のプログラミング体験会もオンラインで実施しているので、ぜひ参加してみてください。

[お知らせ]TechAcademyでは初心者でも最短4週間でオリジナルWebサイトを公開できるWebデザインオンラインブートキャンプを開催しています。デザインスキルを身につけたいという人はぜひご覧ください。