HTML:イレギュラーなセルをもつテーブル

HTMLとCSS

tableタグの基本だけではセル同士がくっついたテーブルは表現できません。

これにはrowspan属性とcolspan属性を使って表現します。

実際にはthtdセルの属性として

<td rowspan="2">~</td>

などのように用います。

縦方向にセルをつなげるrowspan

次のようなテーブルを作るとします。

上記の表では、高校生と中学生の料金列が縦方向につながっています。
考え方としては、まずは普通の表を作っておき、縦方向にセルをつなげるrowspanでは、上に位置するtdタグを残して、下のtdタグ消すという方法をとります。

イメージ

残した上のセルにはつなげるセルの数(この場合は2)を rowspan=” の形式で記述します。

最終的なHTMLの状態

<table>
	<tr><th>券種</th><th>料金</th></tr>
	<tr><td>大人</td><td>1200</td></tr>
	<tr><td>高校生</td><td rowspan="2">800</td></tr>
	<tr><td>中学生</td></tr>
	<tr><td>小学生以下</td><td>500</td></tr>
</table>

CSSまで含めて冒頭のイメージ通りにした例

row_span.html

<!DOCTYPE html>
<html lang="ja">
	<head>
		<meta charset="utf-8">
		<title>縦方向にセルを連結</title>
		<style>
			table{
				border-collapse: collapse;
			}
			th, td{
				padding: 0.5em;
				border: solid 1px #000;
			}
			.right{
				text-align: right;
			}
		</style>
	</head>
	<body>

		<table>
			<tr><th>券種</th><th>料金</th></tr>
			<tr><td>大人</td><td class="right">1200</td></tr>
			<tr><td>高校生</td><td rowspan="2" class="right">800</td></tr>
			<tr><td>中学生</td></tr>
			<tr><td>小学生以下</td><td class="right">500</td></tr>
		</table>

	</body>
</html>

横方向にセルをつなげるcolspan

横方向にもセルをつなげてみます。
次のような例です。

考え方は縦方法の連結(rowspan)と同じです。
上記の場合、土曜日の午前と午後の列が横方向に2つつながっています。一番左側のセルを残して右側のセルを消します

残した左側のセルにはつなげるセルの数(この場合は2)を colspan=” の形式で記述します。

最終的なHTMLの状態

<table>
	<tr><th>曜日</th><th>午前</th><th>午後</th></tr>
	<tr><td>月~金</td><td>〇</td><td>〇</td></tr>
	<tr><td>土</td><td colspan="2">休診</td></tr>
	<tr><td>日</td><td>〇</td><td>休診</td></tr>
</table>

CSSまで含めて冒頭のイメージ通りにした例

col_span.html

<!DOCTYPE html>
<html lang="ja">
	<head>
		<meta charset="utf-8">
		<title>横方向にセルを連結</title>
		<style>
			table{
				border-collapse: collapse;
			}
			th, td{
				padding: 0.5em;
				border: solid 1px #000;
			}
			.center{
				text-align: center;
			}
		</style>
	</head>
	<body>

		<table>
			<tr><th>曜日</th><th>午前</th><th>午後</th></tr>
			<tr><td>月~金</td><td class="center">〇</td><td class="center">〇</td></tr>
			<tr><td>土</td><td colspan="2" class="center">休診</td></tr>
			<tr><td>日</td><td class="center">〇</td><td class="center">休診</td></tr>
		</table>

	</body>
</html>

課題

次のイメージのようなテーブルを作ってみて下さい。
CSSは外部ファイルにて記述。

ファイル名: hathaway.html(HTML)、style.css(CSS)

コメント

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