「>」を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度回転させる*/
}できあがったもの
これで基本の形はできました。
>のサイズや表示される位置を調整することで、リンクボタンやパンくずリスト等に使用できます。
>の位置を調整する
例えばパンくずリストを想定してulliで「>」を表示させる場合は、以下のように記述します。
リストを横並びにしたいので、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
今回、「>」の位置をtoprightで調整していますが、margin-topmargin-leftを使っても調整できます。
