「>」をCSSを使って3STEPで作成する
はじめに
サイト作成時、パンくずリストやリンクボタンの横に「>」を配置したい、と思った事はないでしょうか?
私はこれが必要になったら、いつも著作権フリーのサイトに素材を探しに行っていました(Photoshopで作るのも工数がかかりますし)。
しかし、必要な時になかなか発見できず、無駄な時間を使ってしまう。「>」と記号を使っても良さそうな気がしますが、角度が気に入らないですし。
それならCSSで作ったら良いじゃない!というのが今回の主旨です。
なお、この記号ですが「シェブロン」で検索すると出てくる事があります。勉強になりました。
仕上がりイメージ
これの作り方をSTEPで紹介していきます。
目次
「のような形を作る
まずは「>」の元になる形を作ります。「>」は疑似要素を使って作ります。
今回はリンク<a href="">
を想定して作っていますが、もちろんそれ以外でも作成できます。
HTML
<a href="#" class="test01"> </a>
CSS
.test01 { position: relative; text-decoration: none; } .test01::after { position: absolute; /*相対配置*/ content: ""; width: 10px; /*線の横の長さ*/ height:10px; /*線の縦の長さ*/ color:#ff0000; /*線の色*/ border-top: solid 2px; /*横の線の太さ*/ border-right: solid 2px; /*縦の線の太さ*/ }
できあがったもの
それっぽい形ができました。次はこれを回転させて>にします。
「を回転させて>にする
STEP1で作った図形を回転させるにはtransform:rotate(45deg);
を追記して45度回転させます。
HTMLに変更は無いため割愛します。
CSS
.test01 { position: relative; text-decoration: none; } .test01::after { position: absolute; content: ""; width: 10px; height:10px; color:#ff0000; border-top: solid 2px; border-right: solid 2px; transform: rotate(45deg); /*対象を45度回転させる*/ }
できあがったもの
これで基本の形はできました。
>のサイズや表示される位置を調整することで、リンクボタンやパンくずリスト等に使用できます。
>の位置を調整する
例えばパンくずリストを想定してul
li
で「>」を表示させる場合は、以下のように記述します。
リストを横並びにしたいので、display: flex;
を使っています。
HTML
<ul class="test02"> <li>メニュー1</li> <li>メニュー2</li> <li>メニュー3</li> </ul>
CSS
.test02 { list-style:none; display: flex; } .test02 li { position:relative; } .test02 li::after { oposition:absolute; content:""; width:5px; height:5px; color:#ff0000; border-top: solid 2px; border-right: solid 2px; transform: rotate(45deg); }
できあがったもの
- メニュー1
- メニュー2
- メニュー3
リストの右側に「>」ができましたが位置がずれています。
パンくずリストを作る場合、最後のメニューに>を付けるとおかしいので、最後のメニューのみ非表示にします。
上記のCSSに以下を追記します。
CSS
.test02 li:last-of-type:after { display: none; /*最後の「>」を非表示にする*/ }
できあがったもの
- メニュー1
- メニュー2
- メニュー3
これでリストの最後のみ「>」が表示されなくなりました。
あとはリスト間の余白を作ったり、「>」の位置を調整すればパンくずリストの完成です。
CSS
.test02 { list-style:none; display: flex; } .test02 li { position:relative; padding-right:25px; } .test02 li::after { position:absolute; content:""; width:5px; height:5px; color:#ff0000; border-top: solid 2px; border-right: solid 2px; top:6px; right: 10px; transform: rotate(45deg); }
できあがったもの
- メニュー1
- メニュー2
- メニュー3
今回、「>」の位置をtop
right
で調整していますが、margin-top
margin-left
を使っても調整できます。