0

私は今、テーブルの列幅をいじっています。HTML5ではwidth属性が非推奨になっているため、CSSを使用してテーブルの列幅を設定しようとしています。ただし、何らかの理由でこれは確実に機能しません。

具体的には...

表を使ってガントチャート(まだ聞いたことがない人のためのある種のスケジュール)を作成したいと思います。各月は、対応する月の日数を表すいくつかの列で構成されます。ヘッダーはcolspanを使用して、1か月のすべての日にまたがります。毎日10px幅にする必要があります。したがって、31日(1月など)にまたがるTDは、属性style = "width:310px"で装飾されます。

さらに、プロジェクトタスクは3つのスパン列で構成されます。最初の列はプロジェクトの開始からタスクの開始日までの空き時間、2番目のスパン列はタスクがアクティブな時間、3番目の列はその間の時間です。タスク自体の終了とプロジェクト全体の終了日。

説明が私の問題を回避するのに役立つことを願っています...

それについて奇妙なのは、列が幅の設定を無視しているように見えるという事実です。これは、FireFoxが提供するようなDOMインスペクターに表示されます。打ち消されていないため、DOMで受け入れられて実際に使用されますが、計算されたTDの幅はこの設定を反映していません。一部のTDは小さく、その他のTDはstyle属性で指定された幅よりも広くなっています。

そして、私は単に理由がわかりません。

それで、スパンされた列のセットの幅を、絶対的に信頼でき、再現可能な固定値に設定する方法はありますか?

4

4 に答える 4

0

提供されている Fiddle でわかるように、TH と TD にはライバルの幅設定があります。すべての TD から幅の設定を削除し、TH の設定のみを残しました。それで、今はうまくいくようです。

于 2012-11-29T22:49:39.413 に答える
0

各 TD 要素に div を挿入し、必要な幅を設定します。これにより、幅が固定されます。

<table>
  <tr>
      <td><div style="width: 200px;">Fixed 200px width</div></td>
  </tr>
</table>
于 2012-11-30T00:49:42.393 に答える
0

各tdにdivまたはタグを挿入し、div<p>の幅を設定するか、それ自体<p>の代わりに<td>..数日前に同じ問題がありましたが、現在は機能しています。

于 2013-07-18T08:10:48.857 に答える
0

表のセル幅は別の方法で計算されます。

設定がゴールデンである通常の要素とは異なりwidth:、表のセルはその内容に基づいて異なる幅を持つことができます。テーブル セルのコンテンツが漏れることはありません。したがって、セルが長い場合、幅が拡大してwidth:設定が上書きされ、残りのセルも「台無し」になります(すべてのセルの幅が固定されている場合)。

私の推奨事項:<table>それ自体に幅を持たせて、それ自体を整理してください。通常、結果は最適です。

于 2012-11-29T22:09:13.310 に答える