機能の概要
画面左にテーブルを配し、これを固定することでスクロールをしても動かないメニューとします。
コンテンツは重ならないように左に余白を取って表示させます。
これによってメニュー部分は常に画面の中に表示されるため、コンテンツをスクロールしてもすぐに使うことができます。
また、メニュー部分は、画像を使わずに幅を調節して、マウスオーバーにも対応した表現を与えています。
左のサンプルではリンクを無効にしています。
製作工程
- <table>を使ったメニューの作成
- CSSによるコンテンツの幅の調節
- CSSでメニュー内のリンクをボタン化
HTML
<!DOCTYPE HTML>
<html> <head> (省略) </head> <body> <h1>CSSフローティングメニュー</h1> <hr> <table border="2" cellpadding="0" cellspacing="5" id="tmenu"> <tr><td><a href="001.html" class="amenu">MENU001</a></td></tr> <tr><td><a href="002.html" class="amenu">MENU002</a></td></tr> <tr><td><a href="003.html" class="amenu">MENU003</a></td></tr> <tr><td><a href="004.html" class="amenu">MENU004</a></td></tr> <tr><td><a href="005.html" class="amenu">MENU005</a></td></tr> </table> <div id="main"> (省略) </div> </body> </html>
CSS
<style type="text/css"> #tmenu { float: left; width: 200px; position: fixed; margin: 10px; } #main { padding-left: 240px; } .amenu { background-color: #CCFFCC; color: #006600; font-weight: bold; display: block; padding: 5px; text-align: center; text-decoration: none; } .amenu:hover { background-color: #FFCCFF; color: #FF0000; } </style>
注意点
DTDの記述がないと「position: fixed;」が有効に働かない。