ホームページ作成/画像の表示・活用 (HTML,CSS,JavaScript)

角の丸い「タブ」をHTMLとCSSで作る方法(6ページ目)

左上と右上の角を丸くして「タブ」に見えるデザインをHTMLとCSS(スタイルシート)で作成する方法を解説。リンクに長方形の枠を加えて上側の角を丸くすると「タブ」らしく見え、視覚的に分かりやすいナビゲーション機能が作れます。文字はテキスト・配色はCSSで記述するため、ソースをコピーするだけでいくつでも並べられ、修正も簡単です。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

5. タブに対応するページ(ボックス)を作成して、タブ機能らしく見せる

それでは最後に、タブに対応する内容を表示するボックスを作りましょう。ボックス自体には特に工夫は必要ありません。ただ、「タブの配色」と「ボックスの配色」を一致させることで、まるで「選択中のタブ」と「ボックス」が繋がっているように見せれば良いだけです。

以下のようにHTMLソースとCSSソースを記述します。

HTMLソース:
<div class="box">
   タブ直後のボックス(タブに対応するボックス)<br>
</div>
HTML側には特に何の工夫もありません。ただ、ボックスを1つ作成しているだけです。中身は好きなように記述して下さい。

CSSソース:
div.box {
   clear: left;          /* (1) 回り込みを解除 */
   height: 100px;        /* (2) ★高さを指定*/
   padding: 0.5em;       /* (3) ★内側の余白量 */
   background-color: #ffcccc;  /* (4) ★背景色 */
   border: solid #800000 10px; /* (5) ★枠線 */
   position: relative;   /* (6) ※後述 */
   z-index: 10;          /* (7) ※後述 */
}
それぞれの意味は下記の通りです。
  • (1) 前ページまでで作成したタブは、floatプロパティを用いて横方向に並べていました。そのため、タブ直後のボックスではfloatプロパティによる回り込みを解除するclearプロパティの適用が必要です。
  • (2) ボックスの高さを指定しています。タブごとにボックスの高さを揃える必要がなければ、この行は書かなくて構いません。
  • (3) 内側の余白量を「0.5文字分」にしています。
  • (4) 背景色を指定しています。ここでは淡い赤色(#ffcccc)にしています。
  • (5) 枠線を指定しています。ここは、選択中のタブの配色と一致する色にしておきます。上記(4)の背景色をタブの色と一致させていない場合は、枠線の太さを少し太めにしておくと「タブとボックスが繋がっている感じ」が出しやすくなります。
  • (6~7) z-indexプロパティを使って、他の要素よりも上(前面)に表示されるよう指定しています。z-indexは「0」を基準にして数値が大きいものから順に前面に表示されます。ここでは必ずしも値を「10」にする必要はありませんが、念のために余分に大きな値を指定しています。なお、z-indexプロパティを使うためには、positionプロパティの値を「static」以外にする必要があるため、(6)で「relative」を指定しています。

上記のHTMLとCSSを加えてブラウザで表示すると、下図のように見えます。実際に表示を確認したい場合は、サンプルページ5をご覧下さい。

タブに対応するボックスを加えると完成

タブに対応するボックスを加えると完成


タブの高さを必要以上に高くしておくと、多段になった際にも繋がって見える

横幅が狭くて、タブが多段に表示される例

横幅が狭くて、タブが多段に表示される例

上記でご紹介したソースでは、「タブ」よりも「タブに対応するボックス」の方が上(前面)に表示されるよう装飾を記述しました。そのため、タブ1つ1つの高さを必要以上に(=ul要素に指定した高さよりも)高くしても、実際のタブの表示には影響しません。余分な部分は、「タブに対応するボックス」が前面に表示されるために隠されるからです。

このようにしておくと、描画領域が狭いなどの理由でタブが多段に表示されてしまっても、「タブ」と「ボックス」は繋がって見えます。

高さを余分に確保しておくには、2-B(本記事の3ページ目)で記述したCSSソースに、heightプロパティを1行を加えます。
ul.menulist li a {
   height: 60px; /* ★十分な高さを指定しておく(※タブが2段組・3段組になったときのために数倍にしておくと良いかも) */
}

最後に、今回ご紹介したソースのまとめを掲載しておきます。コピー&ペーストして使ってみる際などにご活用下さい。

  • 前のページへ
  • 1
  • 5
  • 6
  • 7
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます