HTMLのtableタグ内のtdタグ内にテキストエリアがあり、これを、テーブル全体がWeb画面一杯になるようにテキストエリアもなるべく大きくしたいが、この場合のhtmlやcssの記述方法を知りたい

テーブル全体を画面いっぱいに広げ、その中にあるtextarea(テキストエリア)もセルいっぱいに最大化するには、テーブルとテキストエリアの両方に適切なサイズ指定(width / height)と、余白の相殺(box-sizing)を設定するのが最も確実です。

以下に、コピペでそのまま使えるHTMLとCSSの記述例を解説付きで紹介します。

📋 実装コード例

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>テーブルとテキストエリアの画面最大化</title>
    <style>
        /* 1. 画面全体の余白を無くし、高さを100%にする */
        html, body {
            margin: 0;
            padding: 0;
            height: 100%;
            width: 100%;
        }

        /* 2. テーブルを画面いっぱいに広げる */
        .full-screen-table {
            width: 100%;
            height: 100%;
            border-collapse: collapse; /* 枠線の隙間をなくす */
            table-layout: fixed;       /* セルの幅・高さを均等に保ちやすくする */
        }

        .full-screen-table th, 
        .full-screen-table td {
            border: 1px solid #ccc;
            padding: 0;               /* 💡 セルの内側余白を0にして隙間をなくす */
            vertical-align: top;      /* 上揃え(必要に応じて変更してください) */
        }

        /* 3. テキストエリアをセルいっぱいに広げる */
        .full-size-textarea {
            width: 100%;
            height: 100%;
            border: none;             /* テキストエリア自体の枠線が不要なら消す */
            resize: none;             /* ユーザーによる手動サイズ変更を禁止する(任意) */
            padding: 10px;            /* テキストエリア内の文字の余白 */
            box-sizing: border-box;   /* 💡 paddingを含めて100%のサイズにする */
            display: block;           /* 下部にできる謎の隙間を解消する */
        }
    </style>
</head>
<body>

    <table class="full-screen-table">
        <tr>
            <th>見出し</th>
            <td>
                <!-- セルいっぱいに広がるテキストエリア -->
                <textarea class="full-size-textarea" placeholder="ここに文字を入力してください..."></textarea>
            </td>
        </tr>
    </table>

</body>
</html>

💡 重要なポイント

  • html, body の height: 100%
    ブラウザの画面縦幅いっぱいに要素を広げるためには、親要素である html と body タグにも高さ100%を指定する必要があります。
  • td の padding: 0
    セル(td)自体に初期設定の余白があると、テキストエリアとの間に隙間ができてしまいます。これを 0 にして密着させます。
  • textarea の box-sizing: border-box
    これを指定しないと、テキストエリアに設定した padding(内側の余白)の分だけテキストエリアがセルからはみ出してしまいます。
  • textarea の display: block
    textarea は初期状態がインライン要素(inline-block)のため、セルの底辺との間に数ピクセルの隙間が空いてしまいます。ブロック要素に変換することでこれを防ぎます。

もし特定の行や列だけを大きくしたい、あるいは複数行あるうちの1つだけを最大化したいなどの条件があれば、さらに詳しい構成を教えてください。追加のCSS調整をご提案します。

AI による概要

Web画面いっぱいにテーブルとテキストエリアを広げるには、html, body, table に対して height: 100% を設定し、td に position: relative、内部の textarea に position: absolute と width: 100%, height: 100% を指定するのが確実です。 [1]

サンプルコード

HTML

html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Full Screen Textarea</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <table class="full-table">
    <tr>
      <td>
        <textarea class="full-textarea" placeholder="ここに入力"></textarea>
      </td>
    </tr>
  </table>
</body>
</html>

コードは注意してご使用ください。

CSS (style.css)

css

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden; /* 画面スクロールを出さない場合 */
}

.full-table {
  width: 100%;
  height: 100%;
  border-collapse: collapse;
}

.full-table td {
  position: relative; /* 子要素の絶対配置の基準にする */
  padding: 0;         /* 余白をなくしてセルいっぱいに広げる */
}

.full-textarea {
  position: absolute; /* セル枠に対して絶対配置 */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box; /* paddingやborderを含めて100%にする */
  resize: none;           /* ユーザーによる手動リサイズを禁止する場合 */
  border: none;           /* 必要に応じて枠線を消す */
}

コードは注意してご使用ください。

ポイント

  • 高さの継承: html と body、さらに table にも height: 100% を指定しないと、中の height: 100% や絶対配置が正しく機能しません。
  • 絶対配置の活用: td に position: relative、textarea に position: absolute を使うことで、テーブル特有の余白や行の高さの自動調整の影響を受けずに画面やセルいっぱいに引き伸ばせます。
  • box-sizing: border-box: 指定しておくと、枠線やパディングを足してもはみ出さなくなります。 [1, 2, 3]

もし、テーブルに他の行(ヘッダーやボタンなど)があって「残りの高さいっぱい」に広げたい場合や、スクロールを出したい場合は、レイアウトを調整しますので教えてください。

HTML
楽天市場

コメント

タイトルとURLをコピーしました