CSSテクニック

ulタグでメニューを作る3

今回はフィルターと組み合わせて、ハイレベルなメニュー作成に挑戦です!

テクニック使用後

企業サイトで見かけるイメージ画像の上に半透明のメニューというパターンを作ってみました。

やり方

1:HTMLを書く

HTMLはこんな感じになります。

<div class="sample">
<ul>
<li><A href="#">トップ</A></li>
<li><A href="#">インフォメーション</A></li>
<li><A href="#">BBS</A></li>
<li><A href="#">リンク集</A></li>
</ul>
</div>

HTML解説

ヘッダーになるであろうdiv.sampleとulタグで組んだメニューの組み合わせ。シンプルですね。

2:スタイルシートを書く

スタイルシートはこんな感じ。ちょっと長めです。

div.sample{
    background-image:url(../../csstec/img/ulmenu-3b.jpg);
    width:480px;
    height:100px;
    position:relative;
}
.sample ul{
    position:absolute;
    bottom:0px;
    width:440px;
    height:20px;
    margin:0;
    padding-left:40px;
    font-size:13px;
    list-style:none;
    background-color:#ffffff;
    filter:alpha(opacity=60);
    opacity:0.6;
}
.sample li{
    height:20px;
    line-height:20px;
    float:left;
    width:100px;
    text-align:center;
    position:relative;
}
.sample a{
    text-decoration:none;
    display:block;
    color:#663300;
}
.sample a:hover{
    width:100%;
    height:100%;
    color:#331100;
    background-color:#cccccc;
}

CSS解説

順を追って解説しましょう。

まず、div.sampleにイメージ画像を指定し、幅と高さを「px単位」で指定します。%は使えません。 そしてposition:relative;を書き加えます。

今度はメニューとなるulのスタイルを指定します。最初にposition:absolute;とbottom:0px; を使ってdiv.sampleの下部に配置します。つづいて幅と高さを「px単位」で指定します。%でも可。
合わせてfont-sizeも「px単位」で指定します。

そして、フィルターの登場。filter:alpha(opacity=60);とopacity:0.6;を書き加えます。 opacity:0.6;というのはfirefoxとOpera用のフィルターです。これはCSS3.0で使用できるようになるプロパティでfirefoxに先行実装されているものです。普段見ることの少ないものなので、ここで覚えておくと良いかもしれません。

重要なのはここまで。あとはulタグでメニューの1,2と組み合わせてfloatやinlineを使ってメニューを横に並べ、リンクの見栄えを整えて完成です。


使いこなすための+α

イメージ画像に手を加えた方が楽なんじゃない?と聞かれると返答に詰まりますねぇ。普段見かける似たようなメニューはそうやって作られているはずですし。

今回のテクニックの良いところは、あらゆるイメージ画像・メニューサイズに適用できる点です。 スタイルシート1つでメニューの大きさを変えることが出来るし、イメージ画像を差し替えるだけで半透明メニューを実現できます。

欠点といえばOpera8以下で使えないことですが、半透明にならないだけなので、支障はありません。


一覧へ戻る


Last Modified 2006-10-29 © きくちゃん 2004 - All Rights Reserved