CSS3と擬似要素を使って、普段リンクボタンなどでよく使う「▶」などのアイコンを画像を使わずに簡単実装する方法です。
元のボタンを形成するCSSとアイコンのCSSを分けて制作しておくと重宝します。
まずは、コピペで!
目次
/* 角丸 */
.Radius5 {
border-radius: 5px; /* CSS3草案 */
-webkit-border-radius: 5px; /* Safari,Google Chrome用 */
-moz-border-radius: 5px; /* Firefox用 */
}
/* ボタン共通 */
.Button {
overflow: hidden;
width: 250px;
height: 50px;
margin: 0;
padding: 0;
}
.Button a {
display: block;
position: relative;
z-index: 100;
text-align:center;
background: #00a0e9;
color: #fff;
font-size: 14px;
line-height: 50px;
text-decoration:none;
}
.Button a:hover {
background: #3ab2e9; /* マウスオーバーカラー */
}
上記のボタンを形成するCSSは、これから紹介するボタン全て共通で読み込んでいます。
では、さっそくボタンを作っていきましょう。
HTML
<div class="Button Radius5" id="IconList1">
<a href="#">くの字矢印ボタン</a>
</div>
IconList1というIDでアイコンのCSSを制作します。
アイコン(IconList1)のCSS
.IconList1 a:before { /*白いひし型 */
display: block;
content: "";
position: absolute;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
top: 50%;
left: 20px;
width: 8px;
height: 8px;
margin-top: -4px;
background: #fff;
}
.IconList1 a:after { /*バックグラウンドと同じ色のひし型をずらして「before要素」を隠す */
display: block;
content: "";
position: absolute;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
top: 50%;
left: 15px;
width: 8px;
height: 8px;
margin-top: -4px;
background: #00a0e9;
}
.IconList1 a:hover:after { /*「after要素」のマウスオーバー(カラーを合わせる) */
background: #3ab2e9;
}
beforeで白い三角形を形成し、afterでバックグラウンドと同じ色で白い三角を隠しています。
マウスオーバー時のカラーもお忘れなく。
HTML
<div class="Button Radius5" id="IconList2">
<a href="#">三角ボタン</a>
</div>
上記の「く」の字矢印アイコン と差別化するためにIconList2というIDでアイコンのCSSを制作します。
アイコン(IconList2)のCSS
#IconList2 a:before {
display: block;
content: "";
position: absolute;
top: 50%;
left: 25px;
width: 0;
height: 0;
margin-top: -5px;
border: 5px solid transparent; /*top right bottom を透明化 */
border-left: 5px solid #fff;
}
#IconList2 a:hover:before {
left: 27px; /*マウスオーバーで三角をずらす */
}
transparentで「top」「right」「bottom」を透明化して三角形を形成しています。
今回マウスオーバーで、少し三角の位置をずらしてみました。
HTML
<div class="Button Radius5" id="IconList3">
<a href="#">丸の中に三角ボタン</a>
</div>
最後はIconList3というIDでアイコンのCSSを制作します。
アイコン(IconList3)のCSS
#IconList3 a:before { /*白い丸 */
display: block;
content: "";
position: absolute;
top: 50%;
left: 19px;
width: 16px;
height: 16px;
margin-top: -8px;
border-radius: 50%; /* CSS3草案 */
-webkit-border-radius: 50%; /* Safari,Google Chrome用 */
-moz-border-radius: 50%; /* Firefox用 */
background: #fff;
}
#IconList3 a:after { /*「after要素」で三角 */
display: block;
content: "";
position: absolute;
top: 50%;
left: 25px;
width: 0;
height: 0;
margin-top: -5px;
border: 5px solid transparent; /*top right bottom を透明化 */
border-left: 5px solid #00a0e9;
}
#IconList3 a:hover:after { /*「after要素」のマウスオーバー(カラーを合わせる) */
border-left: 5px solid #3ab2e9;
}
丸の中に三角も「before」「after」「transparent」の応用です。
今まで、単純なボタンでも画像アイコンを使用していたかと思いますが、ちょっとしたボタンならCSSで実装できるので、効率よく作業が出来るかと思います。
ボタンだけではなく、ナビゲーションにも使えますので応用して制作してください。
アイコンだけのCSSを作っておくと、後々便利に使えます。