パソコンQ&A

テーブルのキホン(1)

テーブルは通常では次のような構成で使います。
<table>
  <tr>
    <td>〜〜</td>
  </tr>
</table>

<table>は、『ここはテーブルですよ』という意味です。
<tr>は、『行』を表します。(tableタグの中で使います)
<td>は、『列』を表します。(trタグの中で使います)

<td>の代わりに<th>を使うこともできます。
<th>は『見出し』を表します。(『Totemo H』の略ではなくて、『Table Header』の略です)
『見出し』の意味なので、ほとんどのブラウザでは太字で中央揃えになります。
[ソース]

天気 説明
晴れ 太陽が見えます
曇り 太陽が雲で隠れてます
水もしたたります

tdをthにすると
[ソース]
天気 説明
晴れ 太陽が見えます
曇り 太陽が雲で隠れてます
水もしたたります

これだと見づらいので枠線(ボーダー)を付けてみましょう。
枠線の指定はborder="【太さ】"です。
[ソース]

天気 説明
晴れ 太陽が見えます
曇り 太陽が雲で隠れてます
水もしたたります

tdをthにすると
[ソース]
天気 説明
晴れ 太陽が見えます
曇り 太陽が雲で隠れてます
水もしたたります

必ず
<table>
  <tr>
    <td>
      〜〜
    </td>
  </tr>
</table>
の親子関係になっていると思っている人もいますが、実はHTML4.0の仕様では<tbody>が省略されているとみなされるので、
<table>
  <tbody>
    <tr>
      <td>
        〜〜
      </td>
    </tr>
  </tbody>
</table>
の親子関係なのです。
<tbody>ってなんでしょう?

<tbody>は『テーブルのボディ部分(本文)』という意味です。

じゃあ<tbody>以外にもあるの?

<tbody>以外に<thead>、<tfoot>があります。
[ソース]

タグ名 説明
パソコンQ&A
<thead> ヘッダー行(見出しなど)
<tbody> ボディー行(本文など)
<tfoot> フッター行(補足など)

仕様では
<thead>〜</thead>
<tfoot>〜</tfoot>
<tbody>〜</tbody>
の順序で書くように定義されてます。
これはヘッダーとフッターを先読みするため(<tbody>をスクロールさせることがあるから)ですが、 Netscape Navigator4などでは <thead>、<tfoot>、<tbody>タグに対応していないので、 記述の順番に表示します。注意してください。
またこの問題が、これらのタグの認知度の低い理由と思います。

HTML4.0では<tbody>が省略されているとされますが、XHTML1.0では<table>の次に<tr>を書くことが認められたため、 <tbody>がない場合は、
そのまま
<table>
  <tr>
    <td>
      〜〜
    </td>
  </tr>
</table>
の親子関係となります。

この違いによる弊害は、デザインでは特にないのですが、プログラムなどJavaScriptやDOMで、テーブルの要素に関係ある場合には問題が起こることがあります。
ただInternet Explorer 6.0やNetscape 7.0などのブラウザでは、XHTMLの宣言をしても、
<table>
  <tbody>
    <tr>
      <td>
        〜〜
      </td>
    </tr>
  </tbody>
</table>
の親子関係とみなしているようです。

DOM(Document Object Model)

注意
<tbody>などで分かれているといっても、列の数や幅は影響します。
<thead>、<tfoot>、<tbody>で列の数を統一しないといけません。

△上に戻る


ソース

簡単なテーブル

<table>
  <tr>
    <td>天気</td>
    <td>説明</td>
  </tr>
  <tr>
    <td>晴れ</td>
    <td>太陽が見えます</td>
  </tr>
  <tr>
    <td>曇り</td>
    <td>太陽が雲で隠れてます</td>
  </tr>
  <tr>
    <td>雨</td>
    <td>水もしたたります</td>
  </tr>
</table>

△上に戻る

thにしてみた

<table>
  <tr>
    <th>天気</th>
    <th>説明</th>
  </tr>
  <tr>
    <td>晴れ</td>
    <td>太陽が見えます</td>
  </tr>
  <tr>
    <td>曇り</td>
    <td>太陽が雲で隠れてます</td>
  </tr>
  <tr>
    <td>雨</td>
    <td>水もしたたります</td>
  </tr>
</table>

△上に戻る

borderを付けてみた

<table border="1">
  <tr>
    <td>天気</td>
    <td>説明</td>
  </tr>
  <tr>
    <td>晴れ</td>
    <td>太陽が見えます</td>
  </tr>
  <tr>
    <td>曇り</td>
    <td>太陽が雲で隠れてます</td>
  </tr>
  <tr>
    <td>雨</td>
    <td>水もしたたります</td>
  </tr>
</table>

△上に戻る

thにしてみた

<table border="1">
  <tr>
    <th>天気</th>
    <th>説明</th>
  </tr>
  <tr>
    <td>晴れ</td>
    <td>太陽が見えます</td>
  </tr>
  <tr>
    <td>曇り</td>
    <td>太陽が雲で隠れてます</td>
  </tr>
  <tr>
    <td>雨</td>
    <td>水もしたたります</td>
  </tr>
</table>

△上に戻る

thead、tbody、tfootを使う

<table border="1">
  <thead>
    <tr>
      <th>タグ名</th>
      <th>説明</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <td colspan="2">パソコンQ&A</td>
    </tr>
  </tfoot>
  <tbody>
    <tr>
      <td>&lt;thead&gt;</td>
      <td>ヘッダー行(見出しなど)</td>
    </tr>
    <tr>
      <td>&lt;tbody&gt;</td>
      <td>ボディー行(本文など)</td>
    </tr>
    <tr>
      <td>&lt;tfoot&gt;</td>
      <td>フッター行(補足など)</td>
    </tr>
  </tbody>
</table>

△上に戻る

このページはリンクフリーです。設定などは自己責任で…
Copy Right kikky

kikky.net