[CSS]縫い目風のかわいいデザインをスタイルシートで実装したナビゲーション
Post on:2011年6月22日
sponsorsr
ぱっと見、画像を使用しているかのような縫い目風のデザインをスタイルシートで実装するナビゲーションを紹介します。
もちろん、画像は使っていません。
また、IE6などのCSS3非対応ブラウザも配慮した実装となっています。

[ad#ad-2]
実装のポイント
-
- スケーラビリティ
- アンカーのフォントサイズを変更することで、サイズを簡単に調整できます。
-
- 画像は無し
- 画像を使用していないため、メンテナンスが簡単です。またHTTPリクエストを減らします。
-
- カスタマイズ
- 簡単にドロップダウン型などに変更できます。
このスタイルシートのアイデアの元となったのは、LESSで使用されているダウンロードボタンです。

実装方法
HTML
HTMLはspan要素を使っている以外は、クリーンです。
このspanはスタイルをつけるのに必要で、疑似要素非対応ブラウザへの配慮となります。
<nav>
<ul>
<li><a href="#"><span>Home</span></a></li>
<li><a href="#"><span>Categories</span></a></li>
<li><a href="#"><span>About</span></a></li>
<li><a href="#"><span>Portfolio</span></a></li>
<li><a href="#"><span>Contact</span></a></li>
</ul>
</nav>
CSS:リストのスタイルをリセット
まずは、リスト要素のスタイルをリセットし、フロートで横並びにします。
nav ul{
padding: 0;
margin: 0;
list-style: none;
}
nav li{
float: left;
}
CSS:a要素のスタイル
a要素では、角丸、ボックスシャドウ、グラデーション、テキストシャドウを使ってスタイルします。
縫い目のスタイルは次のspan要素で行います。
nav a{
float: left;
color: #eee;
margin: 0 5px;
padding: 3px;
text-decoration: none;
border: 1px solid #831608;
font: bold 14px Arial, Helvetica;
background-color: #831608;
background-image: -moz-linear-gradient(#bb413b, #831608);
background-image: -webkit-gradient(linear, left top, left bottom, from(#bb413b), to(#831608));
background-image: -webkit-linear-gradient(#bb413b, #831608);
background-image: -o-linear-gradient(#bb413b, #831608);
background-image: -ms-linear-gradient(#bb413b, #831608);
background-image: linear-gradient(#bb413b, #831608);
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
text-shadow: 0 -1px 0 rgba(0,0,0,.8);
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3), 0 3px 0 rgba(0, 0, 0, 0.7), 0 2px 2px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3), 0 3px 0 rgba(0, 0, 0, 0.7), 0 2px 2px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3), 0 3px 0 rgba(0, 0, 0, 0.7), 0 2px 2px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
}
nav a:hover{
background-color: #bb413b;
background-image: -moz-linear-gradient(#831608, #bb413b);
background-image: -webkit-gradient(linear, left top, left bottom, from(#831608), to(#bb413b));
background-image: -webkit-linear-gradient(#831608, #bb413b);
background-image: -o-linear-gradient(#831608, #bb413b);
background-image: -ms-linear-gradient(#831608, #bb413b);
background-image: linear-gradient(#831608, #bb413b);
}
nav a:active{
background: #bb413b;
position: relative;
top: 2px;
-moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.7) inset;
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.7) inset;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.7) inset;
}
CSS:span要素のスタイル
paddingを使用し余白をもたせ、dashedを使用して縫い目をつけます。
nav span{
border: 1px dashed #eba1a3;
display: inline-block;
padding: 4px 15px;
cursor: pointer;
background-color: #bb413b;
background-image: -moz-linear-gradient(#d4463c, #aa2618);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d4463c), to(#aa2618));
background-image: -webkit-linear-gradient(#d4463c, #aa2618);
background-image: -o-linear-gradient(#d4463c, #aa2618);
background-image: -ms-linear-gradient(#d4463c, #aa2618);
background-image: linear-gradient(#d4463c, #aa2618);
}
nav a:hover span{
background-color: #bb413b;
background-image: -moz-linear-gradient(#aa2618, #d4463c);
background-image: -webkit-gradient(linear, left top, left bottom, from(#aa2618), to(#d4463c));
background-image: -webkit-linear-gradient(#aa2618, #d4463c);
background-image: -o-linear-gradient(#aa2618, #d4463c);
background-image: -ms-linear-gradient(#aa2618, #d4463c);
background-image: linear-gradient(#aa2618, #d4463c);
}
完成したデモ
完成したデモをあらためて、見てみてください。

[ad#ad-2]
対応ブラウザ
対応ブラウザは主要なモダンブラウザ全てです。
IE6/7/8では角丸やグラデーションなどCSS3が適用されず、下記のように表示されます。

IE6でのキャプチャ
sponsors











