DEV Community

Dharan Ganesan
Dharan Ganesan

Posted on

1 1

Day 60: Table Elements

Tables are a fundamental part of web development, used to display data in a structured and organized manner. They consist of various elements, including <thead>, <tbody>, <td>, <tr>, <tfoot>, and <th>.

Table Elements Overview 📜

1. <thead> - Table Header

The <thead> element is used to group and define the header content in a table. It typically contains one or more <tr> elements that, in turn, contain <th> elements, defining the column headers.

Example:

<table>
  <thead>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
    </tr>
  </thead>
  <!-- tbody and data rows here -->
</table>
Enter fullscreen mode Exit fullscreen mode

2. <tbody> - Table Body

The <tbody> element encapsulates the main content of the table, containing one or more <tr> elements, each representing a data row, and containing one or more <td> elements, which hold the actual data.

Example:

<table>
  <thead>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Data 1</td>
      <td>Data 2</td>
    </tr>
    <!-- More data rows here -->
  </tbody>
</table>
Enter fullscreen mode Exit fullscreen mode

3. <td> - Table Data Cell

The <td> element represents a data cell within a table row (<tr>). It contains the actual content or data for a specific cell.

Example:

<tr>
  <td>Data 1</td>
  <td>Data 2</td>
</tr>
Enter fullscreen mode Exit fullscreen mode

4. <tr> - Table Row

The <tr> element defines a row in the table. It can contain one or more <td> elements representing individual cells or <th> elements if it's part of the table header.

Example:

<tr>
  <td>Data 1</td>
  <td>Data 2</td>
</tr>
Enter fullscreen mode Exit fullscreen mode

5. <tfoot> - Table Footer

The <tfoot> element is used to group and define the footer content in a table. Similar to <thead>, it typically contains one or more <tr> elements with <th> elements to define footer columns.

Example:

<table>
  <thead>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
    </tr>
  </thead>
  <tbody>
    <!-- Data rows here -->
  </tbody>
  <tfoot>
    <tr>
      <th>Footer 1</th>
      <th>Footer 2</th>
    </tr>
  </tfoot>
</table>
Enter fullscreen mode Exit fullscreen mode

6. <th> - Table Header Cell

The <th> element defines a header cell within a table. It is typically used within <thead> or <tfoot> to provide header or footer content for columns.

Example:

<tr>
  <th>Header 1</th>
  <th>Header 2</th>
</tr>
Enter fullscreen mode Exit fullscreen mode

Scaling Table 📈

Tables are great for displaying data, but they can become challenging to work with when they contain a large number of rows. Here are some strategies to scale a table effectively:

1. Pagination

Implement pagination to split the data into smaller chunks, displaying only a subset of rows at a time. Users can navigate through pages to access the desired data.

Example:
Image description

2. Virtualization

Virtualization techniques like windowing or infinite scrolling can be used to load and render only the visible rows, reducing the initial rendering time and memory usage.

3. Server-Side Rendering

If the dataset is extremely large, consider fetching data from the server as the user scrolls or interacts with the table, loading only the data needed at that moment.

Disadvantages of Using Tables 🚫

While tables are useful for displaying tabular data, they have some disadvantages:

  1. Limited Styling: Tables can be challenging to style and make responsive, especially as they grow in complexity.

  2. Accessibility: Ensuring tables are accessible to screen readers and other assistive technologies can be complex.

  3. Responsive Design: Creating responsive tables that adapt well to various screen sizes can be a significant challenge.

  4. Complexity: Tables can become complex to manage as the data or table structure grows.

Grid Libraries 📊

To overcome the limitations of native HTML tables, many developers turn to grid libraries like ag-Grid. These libraries provide powerful features for displaying and managing tabular data, including:

  • Advanced sorting and filtering.
  • Built-in pagination and virtualization.
  • Customizable column and row rendering.
  • Accessibility features out of the box.

Here's an example of using ag-Grid:

<div id="myGrid" style="height: 500px; width: 100%;" class="ag-theme-alpine"></div>

<script>
  var gridOptions = {
    columnDefs: [
      { headerName: "Header 1", field: "data1" },
      { headerName: "Header 2", field: "data2" },
    ],
    // ...other options
  };

  // specify the data
  var rowData = [
    { data1: "Data 1", data2: "Data 2" },
    // ...more data
  ];

  // lookup the container we want the Grid to use
  var eGridDiv = document.querySelector("#myGrid");

  // create the grid passing in the div to use together with the columns & data we want to use
  new agGrid.Grid(eGridDiv, gridOptions);

  // ...other grid configuration
</script>
Enter fullscreen mode Exit fullscreen mode

Grid libraries like ag-Grid offer a comprehensive solution for managing complex data presentation needs efficiently.

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more