「>」をCSSを使って3STEPで作成する

はじめに

サイト作成時、パンくずリストやリンクボタンの横に「>」を配置したい、と思った事はないでしょうか?

私はこれが必要になったら、いつも著作権フリーのサイトに素材を探しに行っていました(Photoshopで作るのも工数がかかりますし)。

しかし、必要な時になかなか発見できず、無駄な時間を使ってしまう。「>」と記号を使っても良さそうな気がしますが、角度が気に入らないですし。

それならCSSで作ったら良いじゃない!というのが今回の主旨です。

なお、この記号ですが「シェブロン」で検索すると出てくる事があります。勉強になりました。

仕上がりイメージ

これの作り方をSTEPで紹介していきます。

目次

「のような形を作る

まずは「>」の元になる形を作ります。「>」は疑似要素を使って作ります。

今回はリンク<a href="">を想定して作っていますが、もちろんそれ以外でも作成できます。

HTML

  1. <a href="#" class="test01"> </a>

CSS

  1. .test01 {
  2. position: relative;
  3. text-decoration: none;
  4. }
  5. .test01::after {
  6. position: absolute; /*相対配置*/
  7. content: "";
  8. width: 10px;  /*線の横の長さ*/
  9. height:10px; /*線の縦の長さ*/
  10. color:#ff0000; /*線の色*/
  11. border-top: solid 2px; /*横の線の太さ*/
  12. border-right: solid 2px; /*縦の線の太さ*/
  13. }

できあがったもの

それっぽい形ができました。次はこれを回転させて>にします。

「を回転させて>にする

STEP1で作った図形を回転させるにはtransform:rotate(45deg);を追記して45度回転させます。

HTMLに変更は無いため割愛します。

CSS

  1. .test01 {
  2. position: relative;
  3. text-decoration: none;
  4. }
  5. .test01::after {
  6. position: absolute;
  7. content: "";
  8. width: 10px;
  9. height:10px;
  10. color:#ff0000;
  11. border-top: solid 2px;
  12. border-right: solid 2px;
  13. transform: rotate(45deg); /*対象を45度回転させる*/
  14. }

できあがったもの

これで基本の形はできました。

>のサイズや表示される位置を調整することで、リンクボタンやパンくずリスト等に使用できます。

>の位置を調整する

例えばパンくずリストを想定してulliで「>」を表示させる場合は、以下のように記述します。

リストを横並びにしたいので、display: flex;を使っています。

HTML

  1. <ul class="test02">
  2. <li>メニュー1</li>
  3. <li>メニュー2</li>
  4. <li>メニュー3</li>
  5. </ul>

CSS

  1. .test02 {
  2. list-style:none;
  3. display: flex;
  4. }
  5. .test02 li {
  6. position:relative;
  7. }
  8. .test02 li::after {
  9. oposition:absolute;
  10. content:"";
  11. width:5px;
  12. height:5px;
  13. color:#ff0000;
  14. border-top: solid 2px;
  15. border-right: solid 2px;
  16. transform: rotate(45deg);
  17. }

できあがったもの

  • メニュー1
  • メニュー2
  • メニュー3

リストの右側に「>」ができましたが位置がずれています。

パンくずリストを作る場合、最後のメニューに>を付けるとおかしいので、最後のメニューのみ非表示にします。

上記のCSSに以下を追記します。

CSS

  1. .test02 li:last-of-type:after {
  2.  display: none; /*最後の「>」を非表示にする*/
  3. }

できあがったもの

  • メニュー1
  • メニュー2
  • メニュー3

これでリストの最後のみ「>」が表示されなくなりました。

あとはリスト間の余白を作ったり、「>」の位置を調整すればパンくずリストの完成です。

CSS

  1. .test02 {
  2. list-style:none;
  3. display: flex;
  4. }
  5. .test02 li {
  6. position:relative;
  7. padding-right:25px;
  8. }
  9. .test02 li::after {
  10. position:absolute;
  11. content:"";
  12. width:5px;
  13. height:5px;
  14. color:#ff0000;
  15. border-top: solid 2px;
  16. border-right: solid 2px;
  17. top:6px;
  18. right: 10px;
  19. transform: rotate(45deg);
  20. }

できあがったもの

  • メニュー1
  • メニュー2
  • メニュー3

今回、「>」の位置をtoprightで調整していますが、margin-topmargin-leftを使っても調整できます。