ホームページ >ウェブフロントエンド >jsチュートリアル >HTML と CSS を使用して、固定ヘッダーと固定列を備えたスクロール可能なテーブルを作成する
テーブルは、構造化データを表示するための Web アプリケーションの基本です。スクロール可能なヘッダーや固定 (固定) 列などの機能を追加すると、テーブルがさらに使いやすくなります。この記事では、純粋な HTML と CSS を使用して、固定ヘッダーと固定された左側の列を持つテーブルを作成する方法を説明します。
実際のコードを確認するには、CodePen のこのライブサンプルをチェックしてください。
このコード例では、JS クラスを使用してテーブルを作成します。これは、任意のフレームワークまたはライブラリで複製できます。
を含む単純なテーブル構造を使用します。ヘッダーと
<div> <h2> CSS for Sticky Header and Frozen Column </h2> <p>Here’s the CSS that makes the magic happen:<br> </p> <pre class="brush:php;toolbar:false">/* General styles */ body { font-family: Arial, sans-serif; } /* Scrollable container */ .table-container { border: 1px solid #e5e7eb; border-bottom: none; overflow: auto; /* Enables both horizontal and vertical scrolling */ height: 400px; /* Limits table height for vertical scrolling */ } /* Table layout */ .table { border-collapse: collapse; width: 100%; table-layout: fixed; /* Ensures consistent column widths */ } /* Table cells and headers */ .table th, .table td { padding: 8px; text-align: center; border: 1px solid #e5e7eb; } /* Frozen first column */ .table td:nth-child(1), .table th:nth-child(1) { background: red; /* Highlighted background for frozen column */ position: sticky; left: 0; /* Ensures the column stays on the left */ z-index: 5; /* Keeps the column above other cells */ color: white; } /* Add higher z-index for header */ .table th:nth-child(1) { z-index: 6; } /* Sticky header */ .table th { background-color: #1e3a8a; color: white; font-size: 14px; font-weight: bold; position: sticky; top: 0; /* Makes the header stick to the top */ z-index: 2; /* Keeps the header above the table body */ } /* Styling for table body */ .table td { font-size: 14px; color: #6b7280; } /* Zebra striping for rows */ .table tr:nth-child(odd) { background-color: #f9fafb; } /* Hover effect for rows */ .table tr:hover { background-color: rgba(14, 116, 144, 0.1); } /* No data row styling */ .no-data { text-align: center; font-size: 14px; color: #9ca3af; }
.table-container クラスは、水平スクロールと垂直スクロールの両方を有効にするために overflow: auto を追加します。 height: 400px プロパティはテーブルの高さを制限し、より大きなデータセットの垂直スクロールを保証します。
position: Sticky プロパティと top: 0 プロパティが
最初の列は、
凍結された列の背景色は赤に設定され、視認性を高めるために白のテキストが表示されます。これは、デザインの好みに合わせてカスタマイズできます。
垂直方向にスクロールすると、position: スティッキー ヘッダーが .table-container の上部に残ります。
水平にスクロールすると、左端の列が固定されたままとなり、列が固定された効果が生じます。
overflow: auto とposition: Stickyの組み合わせにより、両方の軸にわたってテーブルの機能性と使いやすさが確保されます。
レスポンシブ調整:
メディア クエリを使用して、小さな画面の列幅とテーブル レイアウトを調整します。
JavaScript を使用して、より大きなデータセットの行を動的にフェッチし、データを追加します。
JavaScript を使用して行クリック イベント、フィルタリング、並べ替えを追加し、機能を強化します。
標準の
以上がHTML と CSS を使用して、固定ヘッダーと固定列を備えたスクロール可能なテーブルを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。