業務で利用するアプリケーションでよく使うHTML上のテーブルレイアウトも、CSSを利用することで、画面レイアウトを整えることができる。
今回は、Spring BootのWeb画面上で、テーブルレイアウトを追加しCSSでデザインして表示するサンプルプログラムを作成してみたので、共有する。
前提条件
下記記事の実装が完了していること。
ヘッダー・メニュー・本文・フッターをCSSでデザインしたHTMLをSpring Bootで表示してみた業務で利用するアプリケーションで、ヘッダー・メニュー・本文・フッターを1つの画面に表示することが多々あるが、その際、CSSを利用すること...
サンプルプログラムの作成
作成したサンプルプログラムの構成は以下の通り。

なお、上記の赤枠は、今回変更したプログラムである。
HTMLファイルの内容は以下の通りで、本文にテーブルを追加をしている。
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>テーブルの追加</title>
<!-- CSSファイルを読み込む -->
<link th:href="@{/css/demo.css}" rel="stylesheet" type="text/css" />
<!-- タイトル左のfavicon画像を設定する -->
<link rel="icon" th:href="@{/img/purin.jpg}">
</head>
<body>
<header>
ここにヘッダーを書きます。
</header>
<main>
<div class="container">
<div class="menu">
ここにメニューを書きます。幅は30%です。
</div>
<div class="main">
ここに本文を書きます。テーブルを追加します。
<table>
<thead>
<tr>
<th>タイトル1</th>
<th>タイトル2</th>
<th>少し長いタイトル3</th>
</tr>
</thead>
<tbody>
<tr>
<td>カラム1</td>
<td>少し長いカラム2</td>
<td>カラム3</td>
</tr>
<tr>
<td>少し長いカラム1</td>
<td>カラム2</td>
<td>カラム3</td>
</tr>
<tr>
<td>カラム1</td>
<td>少し長いカラム2</td>
<td>少し長いカラム3</td>
</tr>
</tbody>
</table>
</div>
</div>
</main>
<footer>
ここにフッターを書きます。
</footer>
</body>
</html>
CSSファイルで追加した内容は以下の通りで、追加したテーブルの画面デザインの設定をしている。
/* テーブル(本文内)のレイアウト */
main table {
/* テーブルの上下余白(ボックス外)を20px、
左右余白(ボックス外)を40pxに設定 */
margin: 20px 40px;
/* 隣接するセルのボーダーを重ねて表示する設定 */
border-collapse: collapse;
/* カラム数が少なくてもテーブル幅を最大に保つため
テーブルの幅を(本文全体-左右余白(80px))に設定 */
width: calc(100% - 80px);
}
main table th, main table td {
/* テーブルの枠線を設定 */
border: solid 1px black;
/* テキストの位置を上下中央揃えに設定 */
text-align: center;
vertical-align: center;
}
main table th {
/* テーブルのタイトル行の上下余白(ボックス内)を5px、
左右余白(ボックス内)を50pxに設定 */
padding: 5px 50px;
/* 背景色を紺、文字色を白に設定 */
background: #000066;
color: white;
/* タイトル行の枠線の一部(内側)を白に設定 */
border-left-color: white;
border-right: none;
}
/* タイトル行の枠線の一部(外側)を黒に戻す設定 */
main table th:first-of-type {
border-left-color: black;
}
main table th:last-of-type {
border-right: 1px solid black;
}
main table td {
/* テーブルの各行の上下余白(ボックス内)を15px、
左右余白(ボックス内)を20pxに設定 */
padding: 15px 20px;
/* 背景色を薄い青に設定 */
background: #8EB8FF;
}また、追加したテーブルを表示することで必要な画面幅が大きくなるため、以下の箇所にmin-widthプロパティを追加している。
/* ヘッダーのレイアウト */
header {
/* 最小幅を固定値(600px)に設定 */
/* min-widthの値は全体的に目視確認しながら設定 */
min-width: 600px;
/* 下余白(ボックス内)を100pxに設定し、
上左右余白(ボックス内)を10pxに設定 */
padding: 10px 10px 100px 10px;
/* 下余白(ボックス外)を10pxに設定 */
margin-bottom: 10px;
/* 背景色:黄、枠線:黒に設定 */
background: #FFFF99;
outline: 1px solid black;
}
/* メニューのレイアウト */
main .menu {
/* 幅:30%に設定 */
width: 30%;
/* 最小幅を固定値(174px)に設定 */
min-width: 174px;
/* 下余白(ボックス内)を400pxに設定し、
上左右余白(ボックス内)を10pxに設定 */
padding: 10px 10px 400px 10px;
/* 下余白(ボックス外)を10pxに設定 */
margin-bottom: 10px;
/* 背景色:緑、枠線:黒に設定 */
background: #99FF66;
outline: 1px solid black;
}
/* 本文のレイアウト */
main .main {
/* 本文の幅を残りの幅いっぱいに設定 */
flex: 1;
/* 最小幅をテーブルが収まる幅(406px)に設定 */
min-width: 406px;
/* 下余白(ボックス内)を400pxに設定し、
上左右余白(ボックス内)を10pxに設定 */
padding: 10px 10px 400px 10px;
/* 下余白(ボックス外)を10pxに設定 */
margin-bottom: 10px;
/* 背景色:水色、枠線:黒に設定 */
background: #CCFFFF;
outline: 1px solid black;
}
/* フッターのレイアウト */
footer {
/* 最小幅を固定値(600px)に設定 */
min-width: 600px;
/* 下余白(ボックス内)を50pxに設定し、
上左右余白(ボックス内)を10pxに設定 */
padding: 10px 10px 50px 10px;
/* 背景色:桃色、枠線:黒に設定 */
background: #FFDDFF;
outline: 1px solid black;
}その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-css-add-table/demo
「AOMEI Partition Assistant Standard(無料)版」は便利なパーティション管理ツールだったハードディスクの記憶領域を論理的に分割し、分割された個々の領域のことを、パーティションといいます。 例えば、以下の図の場合、C/D...
サンプルプログラムの実行結果
Spring Bootアプリケーションを起動し、Edge(バージョン:94.0.992.38)で「http:// (ホスト名):(ポート番号)」とアクセスした結果は、以下の通り。いずれの画面幅の場合も、ブラウザの本文に、CSSでデザインしたテーブルが表示されることが確認できる。
1) 一般的なサイズ(下図では幅:1061px)の場合の実行結果は、以下の通り。

2) 最大サイズ(下図では幅:1920px)の場合の実行結果は、以下の通り。

3) 最小サイズ(下図では幅:500px)の場合の実行結果は、以下の通り。


要点まとめ
- HTML上のテーブルレイアウトも、CSSを利用することで、画面レイアウトを整えることができる。





