ホームへ

【CSS/html】table,tdの幅を文字に合わせる方法

2022年06月29日

「tableの一列目を文字に合わせたい!」

tableの一列目(特定の列td)を文字に合わせる方法を解説します。

【方法1】width:0とwhite-space:nowrap

「width:0」を指定すると幅が最小になり、中のテキストが折り返されます。

「white-space:nowrap」は折り返しさせないCSSです。

この2つを組み合わせることで改行させず幅を最小にできます。

1999年12月30日テキスト
2000年1月1日テキスト
<style>
.example{
    width: 100%;
}
.example td:first-child{
    width: 0;
    white-space: nowrap;
}
</style>
<table class="example" border="1">
    <tr>
        <td>1999年12月30日</td><td>テキスト</td>
    </tr>
    <tr>
        <td>2000年1月1日</td><td>テキスト</td>
    </tr>
</table>

tableの一列目は「td:first-child」で指定できます。

一列目がthの場合はそのまま「th」に指定するといいでしょう。

CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。

↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓

↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。

【方法2】width:○○em

「em」は文字サイズを基準とした単位です。これで文字数分の幅を指定できます。

最大文字数が明確、white-space:nowrapを使いたくない、width:0に抵抗があるときに使うといいでしょう。

1999年12月30日テキスト
2000年1月1日テキスト
<style>
.example{
    width: 100%;
}
.example td:first-child{
    width: 10em;
}
</style>
<table class="example" border="1">
    <tr>
        <td>1999年12月30日</td><td>テキスト</td>
    </tr>
    <tr>
        <td>2000年1月1日</td><td>テキスト</td>
    </tr>
</table>

注意点

  • letter-spacingの幅も考慮する
  • 半角が含まれるときは文字幅が変わる
    (0.5文字ではない、フォントやブラウザによって変わる)

よって多めの数値を指定することをオススメします。

この方法では幅をピッタリ合わせることは難しいです。

余白を持てるとき、枠線を引かないときにおすすめです。

【注意】width:fit-contentは効かない

width:fit-contentは親要素の幅を子要素の幅に合わせるCSSです。

しかし、tdには効きません。

逆にdivなどには効くため覚えておくといいでしょう。

【まとめ】table,tdの幅を文字に合わせる方法

【方法1】width:0とwhite-space:nowrap

【方法2】width:○○em

注意点

  • letter-spacingの幅も考慮する
  • 半角が含まれるときは文字幅が変わる
    (0.5文字ではない、フォントやブラウザによって変わる)

以上、tableの一列目(特定の列td)を文字に合わせる方法でした。

「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。

CSSやhtmlをマンガで学ぶ