レイアウトが100%の固定テーブルの列幅は等しくありません

adarshr

定義された幅を取得したい列の100%幅に設定されたテーブルがあります。ただし、すべての列の幅が同じように見えます。

.table {
  table-layout: fixed;
  width: 100%;
}

.table th[colspan=4] {
  /* width: 100%; */
}

.table td,
th {
  border: 1px solid #AAA;
  text-align: center;
}

.table td.one {
  width: 10%;
}

.table td.two {
  width: 20%;
}

.table td.three {
  width: 50%;
}

.table td.four {
  width: 20%;
}
<table class="table">
  <tbody>
    <tr>
      <th colspan="4">All Four</th>
    </tr>
    <tr>
      <th colspan="4">All Four</th>
    </tr>
    <tr>
      <td class="one">A</td>
      <td class="two">B</td>
      <td class="three">C</td>
      <td class="four">D</td>
    </tr>
  </tbody>
</table>

テーブルのwidthプロパティを削除すると、個々の列の幅が尊重されます。レイアウトをに変更するとtable-layout: auto、それも機能します。しかし、最初の行として複数の列にまたがる行がある場合、幅を希望どおりにするにはできません。

Abhitalks

テーブルのwidthプロパティを削除すると、個々の列の幅が尊重されます。レイアウトをtable-layout:autoに変更すると、それも機能します。しかし、最初の行として複数の列にまたがる行がある場合、幅を希望どおりにするにはできません。

それがどのようにtable-layout: fixed機能するかです。

ここから:https//developer.mozilla.org/en-US/docs/Web/CSS/table-layout

テーブルと列の幅は、テーブル要素と列要素の幅、またはセルの最初の行の幅によって設定されます。後続の行のセルは列幅に影響しません。

そしてここから:https//www.w3.org/TR/CSS21/tables.html#fixed-table-layout

このようにして、最初の行全体が受信されると、ユーザーエージェントはテーブルのレイアウトを開始できます。後続の行のセルは列幅に影響しません。

したがって、事実上:

  1. レイアウトをauto変更すると、自動テーブルレイアウトが使用され、列幅がコンテンツサイズよりも優先されます。
  2. widthテーブルプロパティを削除すると、固定テーブルレイアウトの使用が停止され、と同じくらい良好になりautoます。

他の答えwidthプロパティが削除されているために機能します(質問で述べたように)。上にリンクされている仕様に戻って参照すると、次のようになります。

テーブルの幅は、「width」プロパティで明示的に指定できます。'auto'の値( 'display:table'と 'display:inline-table'の両方)は、自動テーブルレイアウトアルゴリズムを使用することを意味します。

解決策

問題の解決策は、テーブルレイアウトで最初の行を無視するようにすることです。これはcolgroup/col要素によって行われます。の幅を定義するクラスを削除し、の幅tdを指定しますcols

スニペット

.table { table-layout: fixed; width: 100%; }
.table td, th {
  border: 1px solid #aaa; 
  text-align: center; padding: 4px;
}
.table col.one { width: 10%; }
.table col.two { width: 20%; }
.table col.three { width: 50%; }
.table col.four { width: 20%; }
<table class="table">
	<colgroup>
		<col class="one"/>
		<col class="two"/>
		<col class="three"/>
		<col class="four"/>
	</colgroup>
  <tbody>
    <tr><th colspan="4">All Four</th></tr>
    <tr><th colspan="4">All Four</th></tr>
    <tr>
      <td >A</td>
      <td >B</td>
      <td >C</td>
      <td >D</td>
    </tr>
  </tbody>
</table>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テーブルセルの幅がテーブルレイアウトと同じではありません:固定

分類Dev

テーブルの列幅が正しくありません

分類Dev

テーブルの列幅が正しくありません

分類Dev

CSSを使用したテーブルのスタイリング:列幅が正しくありません

分類Dev

TabulatorfitDataレイアウトがテーブルの幅のサイズを変更していません

分類Dev

レスポンシブテーブルにより、レイアウトが100%の幅を超えます

分類Dev

androidxmlのテキストレイアウトが正しくありません

分類Dev

多くのTD要素の幅はテーブルの幅と等しくありませんが、計算は正確である必要があります

分類Dev

RecyclerViewのリストアイテムのレイアウトの配置が正しくありません

分類Dev

テーブル/テーブルセルに基づく3列のレイアウトはChromeとOperaでは機能しません

分類Dev

固定レイアウトテーブルの列サイズを変更できません

分類Dev

静的配置の通常のレイアウトでは、デフォルトでボディ要素の高さがコンテナの100%ではありませんか?

分類Dev

50%幅のブロックレイアウトの間隔が適切ではありません。理由がわかりません。

分類Dev

Htmlテーブルの幅がdiff列数に対して適切ではありません

分類Dev

UITextFieldの幅は、プレースホルダーテキストを使用した場合の幅よりも小さくなることはありません。

分類Dev

グリッドレイアウトの表示が正しくありません

分類Dev

自動レイアウト:ViewDidAppearのフレームサイズが正しくありません

分類Dev

Birtレイアウトのプレビュータブがありません

分類Dev

キーボードレイアウトの切り替え動作が正しくありません

分類Dev

固定テーブルレイアウトを使用した最小列幅

分類Dev

デンマークのMacキーボードレイアウトが正しくありません

分類Dev

デンマークのMacキーボードレイアウトが正しくありません

分類Dev

Flexboxレイアウトの幅が等しい(段落テキストが折り返されていません)

分類Dev

ブートストラップ4コンテナの幅が正しくありません

分類Dev

Divテーブルセルの幅が同じではありません

分類Dev

レイアウトのレイアウト<layout>は、ベースレイアウトフォルダに宣言がありません[エラー]

分類Dev

ブラウザウィンドウのサイズが変更されたとき、フッターの幅は100%ではありません

分類Dev

Strcmpのトラブル。文字列は等しくありません

分類Dev

動的結果配列は、AngularJSを使用して異なるレイアウトのテーブルにバインドする必要があります

Related 関連記事

  1. 1

    テーブルセルの幅がテーブルレイアウトと同じではありません:固定

  2. 2

    テーブルの列幅が正しくありません

  3. 3

    テーブルの列幅が正しくありません

  4. 4

    CSSを使用したテーブルのスタイリング:列幅が正しくありません

  5. 5

    TabulatorfitDataレイアウトがテーブルの幅のサイズを変更していません

  6. 6

    レスポンシブテーブルにより、レイアウトが100%の幅を超えます

  7. 7

    androidxmlのテキストレイアウトが正しくありません

  8. 8

    多くのTD要素の幅はテーブルの幅と等しくありませんが、計算は正確である必要があります

  9. 9

    RecyclerViewのリストアイテムのレイアウトの配置が正しくありません

  10. 10

    テーブル/テーブルセルに基づく3列のレイアウトはChromeとOperaでは機能しません

  11. 11

    固定レイアウトテーブルの列サイズを変更できません

  12. 12

    静的配置の通常のレイアウトでは、デフォルトでボディ要素の高さがコンテナの100%ではありませんか?

  13. 13

    50%幅のブロックレイアウトの間隔が適切ではありません。理由がわかりません。

  14. 14

    Htmlテーブルの幅がdiff列数に対して適切ではありません

  15. 15

    UITextFieldの幅は、プレースホルダーテキストを使用した場合の幅よりも小さくなることはありません。

  16. 16

    グリッドレイアウトの表示が正しくありません

  17. 17

    自動レイアウト:ViewDidAppearのフレームサイズが正しくありません

  18. 18

    Birtレイアウトのプレビュータブがありません

  19. 19

    キーボードレイアウトの切り替え動作が正しくありません

  20. 20

    固定テーブルレイアウトを使用した最小列幅

  21. 21

    デンマークのMacキーボードレイアウトが正しくありません

  22. 22

    デンマークのMacキーボードレイアウトが正しくありません

  23. 23

    Flexboxレイアウトの幅が等しい(段落テキストが折り返されていません)

  24. 24

    ブートストラップ4コンテナの幅が正しくありません

  25. 25

    Divテーブルセルの幅が同じではありません

  26. 26

    レイアウトのレイアウト<layout>は、ベースレイアウトフォルダに宣言がありません[エラー]

  27. 27

    ブラウザウィンドウのサイズが変更されたとき、フッターの幅は100%ではありません

  28. 28

    Strcmpのトラブル。文字列は等しくありません

  29. 29

    動的結果配列は、AngularJSを使用して異なるレイアウトのテーブルにバインドする必要があります

ホットタグ

アーカイブ