ナビゲーション バーは Web でよく使用される UI コンポーネントであり、基本的に Bootstrap などの CSS フレームワークで提供されます。 ナビゲーション バーは非常に重要なので、ナビゲーション バーを手動で実装しましょう。 このプロセスでも、いくつかのレイアウト スキルと CSS3 機能を習得する必要があります。
ナビゲーション バーは通常
<ul> <li><a>First Item</a></li> <li><a>Second Item</a></li> <li class="active"><a>Third Item</a></li> <li><a>Fourth Item</a></li></ul>
まず、ターゲット マーク (小さな点) や左側のマージンなどのリストのデフォルト スタイルを削除します:
ul { left-margin: 0; /* IE/Opera 默认使用外边距 */ left-padding: 0; /* Safari/Firefox 默认使用内边距 */ list-style-type: none; /* 左侧向目标记 */}
これにより、ブラウザによって
垂直ナビゲーション バーの効果は以下のようになります。強調表示された (暗い) 項目は現在アクティブな項目を表し、マウス ホバーまたは現在のページを示します。
上の図は前述の HTML フラグメントを使用しています。以下では主に CSS の実装を考慮しています。 前述のようにリストのデフォルトのスタイルをクリアした後、リスト項目のスタイルを設定します。
ul a{ display: block; width: 200px; height: 40px; line-height: 40px; background: #f8f8f8;}
IE は
次に、いくつかの境界線と丸い角を設定します。
ul a{ border-radius: 3px; border: 1px solid #e7e7e7; padding: 0 15px;}
境界線を少し暗い色に設定し、3 ピクセルの丸い角を追加します。テキストに境界線から一定の距離を与えるようにパディングを設定します。 border-radius は CSS3 の機能です。以前は、丸い角を設定するには背景画像の助けが必要でした。CSS 背景画像のヒントを参照してください。
境界線を設定すると、隣接するアイテムの上下の境界線が結合されて 2 ピクセルの境界線が形成されることに注意してください。 これは、負のマージンを設定する (項目を 1 ピクセルずつオーバーラップさせる) ことで解決できますが、これには最後の項目のマージンを 0 に戻す必要があります。
ul a{ margin-bottom: -1px;}ul li:last-child a{ margin-bottom: 0;}
おそらく注意深い読者なら、前述の HTML フラグメントの 1 つの項目
ul .active a, ul a:hover{ background: #e7e7e7;}
水平ナビゲーションを実装するには、さまざまな方法があります。
ul li{ float: left;}ul{ float: left;}
垂直方向のナビゲーションと同様に、境界線は水平方向に積み重ねられます。解決策は同様です:
ul a{ margin-right: -1px;}ul li:last-child a{ margin-right: 0;}
上の図では、次のスタイルが に追加されています: width: 70px; text-align: center;