Rethink navigation
色々指定個所や値を変えて、ナビゲーションのしくみを考えてみた。
/* ▼縦ナビ */ #nav { margin: 50px 0 0 50px; width: 200px; } #nav ul { list-style-type: none; text-align: center; } #nav li { } #nav li a { display:block; margin: 20px 0 0 0; padding: 14px 0; } #nav a:link, #nav a:visited { color: #FFFFFF; background-color: #773F3F; text-decoration: none; } #nav a:hover { background-color: #E09898; } /* ▲縦ナビ */
nav
・height (設定不要。下段に項目が追加される可能性がある為)
・width (ナビ全体の横幅を指定)
・margin (ナビ周辺の幅を指定)
ul
・list-style-type: none (リストの黒丸を消す)
li
・設定不要
li a
・li aがliの上に乗っている為、liで指定出来るものはli aで指定可能
・margin (各ボックス間の幅を指定)
・上下のmarginは相殺される
・display: block (aに面積を持たせ、リンク文字以外にもマウスが反応する様にする。
インライン要素からブロック要素へ変換する)
a:link, a:visited, a:hover
・サイズや文字色等の文字の装飾だけ、設定すればよい
・text-decoration: none (リンク文字のアンダーラインを消す)
/* ▼横ナビ */ #nav2 { font-size: 1em; width: 1100px; margin: 50px 0 0 50px; } #nav2 ul { list-style: none; text-align: center; overflow: auto; } #nav2 li { float: left; } #nav2 li a { width: 200px; margin: 0 10px 0 ; padding: 15px 0; display: inline; display: block; } #nav2 a:link, #nav2 a:visited { color: #FFFFFF; text-decoration: none; background-color: #773F3F; } #nav2 a:hover { background-color: #E09898; } /* ▲ 横ナビ *>
nav
・width (ナビ全体の横幅を指定)
・height (指定不要)
・margin (ナビ周辺の幅を指定)
ul
・list-style-type: none (リストの黒丸を消す)
・text-align: center (各ボックス内の文字を中央寄せ)
・overflow: auto (文字拡大によるレイアウト崩れを防ぐ)
li
・float: left; (各ボックスを横に並べる)
li a
・li aがliの上に乗っている為、liで指定出来るものはli aで指定可能
・width (各ボックスの横幅を指定。ナビ全体の横幅から各ボックス間のpadding,border,marginを引いて、ボックス数で割った数より少ない値)
・margin (各ボックス間の幅を指定)
・左右のmarginは相殺されない
・height (特に設定は不要。line-height,padding上下でボックスの縦幅の変更可能)
・display: block (aに面積を持たせ、リンク文字以外にもマウスが反応する様にする。インライン要素からブロック要素へ変換する)
・display: inline (IE6によるバグ回避の為)
a:link, a:visited, a:hover
・サイズや文字色等の文字の装飾だけ、設定すればよい
・text-decoration: none (リンク文字のアンダーラインを消す)