[CSS]縫い目風のかわいいデザインをスタイルシートで実装したナビゲーション

ぱっと見、画像を使用しているかのような縫い目風のデザインをスタイルシートで実装するナビゲーションを紹介します。

もちろん、画像は使っていません。
また、IE6などのCSS3非対応ブラウザも配慮した実装となっています。

デモのキャプチャ

Sexy CSS3 menu
デモページ

[ad#ad-2]

実装のポイント

  • スケーラビリティ
    アンカーのフォントサイズを変更することで、サイズを簡単に調整できます。
  • 画像は無し
    画像を使用していないため、メンテナンスが簡単です。またHTTPリクエストを減らします。
  • カスタマイズ
    簡単にドロップダウン型などに変更できます。

このスタイルシートのアイデアの元となったのは、LESSで使用されているダウンロードボタンです。

サイトのキャプチャ

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

top of page

©2024 coliss