4つのテーブル列-ID
、Text
、Date
、Action
を取ります。私の場合、テーブルの幅は常に一定です-例では960px。
次のようなテーブルを作成するにはどうすればよいですか?
*-*------------------------------------*----------*----*
|1| Some text... |May 2011 |Edit|
*-*------------------------------------*----------*----*
|2| Another text... |April 2011|Edit|
*-*------------------------------------*----------*----*
ご覧のとおり、ID
、Date
、Action
はコンテンツに合わせて幅を調整します。Text
は可能な限り長くします。..
列の特定の幅を設定せずにそれは可能ですか? ID
= 123またはDate
= 2011年11月の場合、列は自動的に広くなります...
ワイドtdで100%
幅を使用し、white-space:nowrap
と共にテーブルの固定幅を使用すると、次のようになります。
<table>
<tr>
<td>1</td>
<td width="100%">Some text... </td>
<td>May 2011</td>
<td>Edit</td>
</tr>
<tr>
<td>2</td>
<td width="100%">Another text... </td>
<td>April 2011</td>
<td>Edit</td>
</tr>
</table>
table
{
...
width:960px;
}
td
{
...
white-space:nowrap;
}
基本的には次のようになります。 http://jsfiddle.net/49W5A/ -セル幅を小さくするには(1px
など)、セル幅を小さくする必要がありますできるだけ。
しかし、後でわかるように、日付フィールドが行を折り返すことに問題があります。これを防ぐには、テキストフィールドにwhite-space: nowrap;
を追加します。 http://jsfiddle.net/ZXu7U/
作業例:
<style type="text/css">
.table{
width:500px;
border: 1px solid #ccc;
}
.table td{
border: 1px solid #ccc;
}
.id, .date, .action{
width:1px;
}
.date{
white-space: nowrap;
}
</style>
<table class="table">
<tr>
<td class="id">1</td>
<td class="text">Some Text...</td>
<td class="date">May 2011</td>
<td class="action">Edit</td>
</tr>
<tr>
<td class="id">2</td>
<td class="text">Another Text...</td>
<td class="date">April 2011</td>
<td class="action">Edit</td>
</tr>
</table>
私への私の最高のアドバイスは、テーブルの幅に触れないことです。テーブルは、すべてのセルが最適になるように自動的にレイアウトされます。
ただし、プッシュスルーする場合は、調整が必要なセルでwidth: 1px;
を使用します(各列の1つで十分です)。また、すべてのセルでwhite-space: nowrap
を使用します。これにより、行が分割されなくなります。
これを試して:
.id、.date、.actionはテーブルセル(td)です。
CSS:
.id, .date, .action {
width: 1em;
}
それは私のために働いた。
Width:1emはテキストをカットしませんが、幅のサイズを最小にします。
テーブルの列幅を設定するために見つけた最良の方法は、 テーブルヘッド (これは空にすることができます)そして、各テーブルヘッドセルに相対的な幅を適用します。テーブル本体のすべてのセルの幅は、列見出しの幅に一致します。例:
HTML
<table>
<thead>
<tr>
<th width="5%"></th>
<th width="70%"></th>
<th width="15%"></th>
<th width="10%"></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Some text...</td>
<td>May 2018</td>
<td>Edit</td>
</tr>
<tr>
<td>2</td>
<td>Another text...</td>
<td>April 2018</td>
<td>Edit</td>
</tr>
</tbody>
</table>
CSS
table {
width: 600px;
border-collapse: collapse;
}
td {
border: 1px solid #999999;
}
あるいは、提案されているようにcolgroup
を使用できます here 。