[PR] 容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。さくらのレンタルサーバ

リストでテーブルのようなマス目を作ると? その1

 リスト要素にボーダーをうまく設定して、枠付きのテーブルのような格子状の見た目を実現させてみたいと思います。

 このサンプルでは、リスト項目を横方向へ並べています。縦方向へ並べる場合のサンプルは、「リストでマス目を作る その3」でご紹介しています。

IE 6.0、Firefox 1.5、Opera 9.10で動作確認しています。

完成例(3行3列 横方向)

 分かりやすくするために、枠の幅を太めに20ピクセルとし、内容領域は一辺が80ピクセルの正方形に設定しました。リスト項目は横方向に並んでいます。

  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I

HTMLサンプルコード

<div id="mesh">
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
<ul>
<li>D</li>
<li>E</li>
<li>F</li>
</ul>
<ul>
<li>G</li>
<li>H</li>
<li>I</li>
</ul>
</div>

 このサンプルでは、マス目1行毎に1つのUL要素を使い、3列になるようにLI要素を3つ入れてあります。

 UL要素を1行毎に分けずに1回だけ使用するサンプルは、「リストでマス目を作る その2」でご紹介しています。

 スタイルシートの詳細については、このページのソースコードのヘッダ内の記述を参考にしてください。ポイントは、内容領域の幅とボーダーの幅をどう考慮していくかにあります。

 LI要素はブロックレベル要素なので、CSSのフロートプロパティを左に設定して横一列に並ぶように設定しています。

 LI要素は左右に隣接するため、そのままボーダーを設定してしまうと左右で重なって倍の太さになってしまう部分が生じますが、それをボーダーを設定する場所を考慮することで回避しています。

完成例の内訳 ~要素毎に色を変えると?

 ソースコードから分かるとおり、ボーダーの設定が少し複雑になっています。LI要素には右と下に、UL要素には左のみ(色の部分)に、これらを囲んでいるDIV要素には上のみ(色の部分)に、それぞれボーダーを設定しています。色分けすると以下のようなサンプルになります。

  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
サイトトップページへ戻る