0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

tableの列幅の指定とtbodyの自動補完と。

Posted at

はじめに

HTMLでテーブルを作成する際、列幅の指定等に使う <colgroup> と、データを格納する <tbody> の配置を適切に行わないとうまく反映されません。最近少し手こずったので、記事にして忘れないようにしたいと思います。

テーブルの正しい構造と自動補完の注意点

HTMLでテーブルを記述する際、<colgroup> で各列の幅やスタイルを指定できる。仕様に沿って正しい順序で記述しなければ、レイアウトがうまく設定されない。

以下のコードが適切な構造。

        <table>
            <colgroup> <!--列幅の指定--> </colgroup>
            <tbody>
                <!--テーブルの中身-->
            </tbody>
        </table>

このように、<table> タグ直後に <colgroup> を記述し、その後に <tbody> で中身を囲むのが正しい。

一方、次の例のように <tbody> の前に <colgroup> を記述せず、<tbody> 内に <colgroup> を配置してしまうと、スタイルが反映されなくなる。(ブラウザが自動補完してくれる可能性もあるのかも?)

        <table>
            <tbody>
            <colgroup> <!--列幅の指定--> </colgroup>
            <!--テーブルの中身-->
            </tbody>
        </table>

また、以下の例はテーブルの中身が <tbody> で囲われていない。ブラウザは自動補完機能により内部的に <tbody> を挿入する。が、その際に意図しない配置となることもあるかも。

        <table>
            <colgroup> <!--列幅の指定--> </colgroup>
            <!--テーブルの中身-->
        </table>

自動補完機能は記述ミスを補ってくれるありがたい仕組みだけど、開発者ツールなどで生成されたHTMLの構造を確認し、意図通りに <colgroup> と <tbody> が配置されているかどうかを確認した方がよいかも。

おわりに

最近、少し手こずってました。こうやってまとめる簡単なんですが、サーバーサイドでの動的な挿入など、コードが複雑になってしまっていました。自動補完されるのも知らなかったので勉強になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?