Last Updated 2014/09/22
Web
テーブルの幅
2014/09/01

幅に収まる場合は正常に表示される。

<table width="300px" border="1" bgcolor="#f0f0f0">
  <tr>
    <td width="30%">データ1−1</td><td width="30%">データ1−2</td><td>データ1−3</td>
  </tr>
  <tr>
    <td>データ2−1</td><td>データ2−2</td><td>データ2−3</td>
  </tr>
</table>
データ1−1データ1−2データ1−3
データ2−1データ2−2 データ2−3


セルの値が長い場合は均等にならなかったり,幅をピクセルやパーセントで指定してもその通りの表にならない。

<table width="300px" border="1" bgcolor="#f0f0f0">
  <tr>
    <td width="30%">データ1−1</td><td width="30%">データ1−2</td><td>データ1−3</td>
  </tr>
  <tr>
    <td>データ2−1</td><td>データ2−2</td><td>012345678901234567890123456789012345678901234567890123456789</td>
  </tr>
</table>
データ1−1データ1−2データ1−3
データ2−1データ2−2012345678901234567890123456789012345678901234567890123456789


表の割当を固定するには,style="table-layout: fixed;"を追加する。

<table width="300px" border="1" bgcolor="#f0f0f0" style="table-layout: fixed;">
  <tr>
    <td width="30%">データ1−1</td><td width="30%">データ1−2</td><td>データ1−3</td>
  </tr>
  <tr>
    <td>データ2−1</td><td>データ2−2</td><td>012345678901234567890123456789012345678901234567890123456789</td>
  </tr>
</table>
データ1−1データ1−2データ1−3
データ2−1データ2−2012345678901234567890123456789012345678901234567890123456789


テーブルが固定されるかわりに,文字が全て表示されない。
それを解消するには改行を行う style="word-break: break-all;" を指定する。
(ただし,ブラウザにより動作が違う場合がある)

<table width="300px" border="1" bgcolor="#f0f0f0" style="table-layout: fixed;">
  <tr>
    <td width="30%">データ1−1</td><td width="30%">データ1−2</td><td>データ1−3</td>
  </tr>
  <tr>
    <td>データ2−1</td><td>データ2−2</td><td style="word-break: break-all;">012345678901234567890123456789012345678901234567890123456789</td>
  </tr>
</table>
データ1−1データ1−2データ1−3
データ2−1データ2−2012345678901234567890123456789012345678901234567890123456789


テーブル内でソースコードを表示する場合は,以下の用にするとよい。

<table width="300px" border="1" bgcolor="#f0f0f0" style="table-layout: fixed;">
  <tr>
    <td width="30%">データ1−1</td><td width="30%">データ1−2</td><td>データ1−3</td>
  </tr>
  <tr>
    <td>データ2−1</td><td>データ2−2</td>
    <td>
    <div style="overflow:auto; width:100%;border:solid 1px #FFFFFF;">
    <pre>
#include <stdio.h>

    void main()
    {
        int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
    }
    </pre>
    </td>
  </tr>
</table>
データ1−1データ1−2データ1−3
データ2−1データ2−2
#include 

void main()
{
    int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
}
    


参照
HMTL でソースコードの表示
前後のTips
テーブルの幅

DSS ProgrammingTipsCGI Ver1.02