「>」を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
を使っても調整できます。