【HTML】表を作成する簡単な方法

【HTML】表を作成する簡単な方法

基本的な表の作成

HTMLでは、<table> 要素を使用して表を作成します。

<table>
    <tr>
        <td>セル1</td>
        <td>セル2</td>
    </tr>
    <tr>
        <td>セル3</td>
        <td>セル4</td>
    </tr>
</table>
セル1 セル2
セル3 セル4

<thead><tfoot> を使うことで、ヘッダーやフッターを定義できます。

<table>
    <thead>
        <tr>
            <th>見出し1</th>
            <th>見出し2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>データ1</td>
            <td>データ2</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="2">表のフッター</td>
        </tr>
    </tfoot>
</table>

セルの結合

colspan(横方向)や rowspan(縦方向)を使ってセルを結合できます。

<table>
    <tr>
        <td colspan="2">横に結合</td>
    </tr>
    <tr>
        <td rowspan="2">縦に結合</td>
        <td>データ1</td>
    </tr>
    <tr>
        <td>データ2</td>
    </tr>
</table>

罫線を追加する

HTMLだけでは罫線が表示されないため、CSSを使います。

<style>
    table, th, td {
        border: 1px solid black;
        border-collapse: collapse;
    }
</style>

<table>
    <tr>
        <td>データ1</td>
        <td>データ2</td>
    </tr>
</table>

レスポンシブ対応の表

小さい画面でもスクロールできるようにするには、<div> を使います。

<div style="overflow-x:auto;">
    <table>
        <tr>
            <th>見出し1</th>
            <th>見出し2</th>
            <th>見出し3</th>
        </tr>
        <tr>
            <td>データ1</td>
            <td>データ2</td>
            <td>データ3</td>
        </tr>
    </table>
</div>

ソート可能な表

JavaScriptを使って列をソートできるようにします。

<script>
function sortTable(n) {
    var table, rows, switching, i, x, y, shouldSwitch;
    table = document.getElementById("sortableTable");
    switching = true;
    while (switching) {
        switching = false;
        rows = table.rows;
        for (i = 1; i < rows.length - 1; i++) {
            shouldSwitch = false;
            x = rows[i].getElementsByTagName("TD")[n];
            y = rows[i + 1].getElementsByTagName("TD")[n];
            if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
                shouldSwitch = true;
                break;
            }
        }
        if (shouldSwitch) {
            rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
            switching = true;
        }
    }
}
</script>

<table id="sortableTable">
    <tr>
        <th onclick="sortTable(0)">名前▼</th>
        <th onclick="sortTable(1)">年齢▼</th>
    </tr>
    <tr>
        <td>田中</td>
        <td>25</td>
    </tr>
    <tr>
        <td>佐藤</td>
        <td>30</td>
    </tr>
    <tr>
        <td>鈴木</td>
        <td>22</td>
    </tr>
</table>

これで、クリックすると列のデータが昇順に並び替わります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です