Organizing Content with Lists and Tables
⏱️ 30 minutesLists and tables are essential for organizing and presenting structured information clearly. Learn to create different types of lists and data tables that are both functional and accessible.
🎯 Learning Objectives
- Create ordered, unordered, and description lists
- Build nested list structures
- Construct accessible HTML tables
- Use proper table structure elements
- Implement table headers and captions
- Apply accessibility best practices for data presentation
HTML Lists
💡 Types of Lists
HTML provides three main types of lists: unordered lists for items without specific order, ordered lists for sequential items, and description lists for term-definition pairs.
Unordered Lists
<ul>
<li>Apples</li>
<li>Oranges</li>
<li>Bananas</li>
<li>Grapes</li>
</ul>
Ordered Lists
<ol>
<li>Preheat oven to 350°F</li>
<li>Mix flour and sugar</li>
<li>Add eggs and milk</li>
<li>Bake for 30 minutes</li>
</ol>
Ordered List Attributes
<!-- Start from number 5 -->
<ol start="5">
<li>Fifth item</li>
<li>Sixth item</li>
</ol>
<!-- Reverse numbering -->
<ol reversed>
<li>Last step</li>
<li>Second to last</li>
<li>First step</li>
</ol>
<!-- Different number types -->
<ol type="a">
<li>Lowercase letters</li>
<li>Continue alphabetically</li>
</ol>
Description Lists
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets</dd>
<dt>JavaScript</dt>
<dd>Programming language for web interactivity</dd>
<dd>Can run on browsers and servers</dd>
</dl>
📝 Unordered Lists
- Use for non-sequential items
- Shopping lists, features, menus
- Default: bullet points
- Order doesn't matter
🔢 Ordered Lists
- Use for sequential items
- Instructions, rankings, steps
- Default: numbers
- Order is important
📚 Description Lists
- Use for term-definition pairs
- Glossaries, FAQs, metadata
- dt = term, dd = description
- Multiple descriptions allowed
Nested Lists
Lists can be nested inside each other to create hierarchical structures like outlines or site maps.
Build a Nested List Structure
HTML Tables
💡 When to Use Tables
Tables are for displaying tabular data - information that has relationships between rows and columns. Don't use tables for layout purposes; use CSS instead.
Basic Table Structure
<table>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
<tr>
<td>John Doe</td>
<td>25</td>
<td>New York</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>30</td>
<td>Los Angeles</td>
</tr>
</table>
Table Elements
<table>
Table Container
Wraps the entire table structure
<tr>
Table Row
Contains table cells horizontally
<th>
Table Header
Header cell (bold, centered by default)
<td>
Table Data
Regular data cell
Advanced Table Structure
Semantic Table Elements
<table>
<caption>Student Grades - Fall 2024</caption>
<thead>
<tr>
<th>Student Name</th>
<th>Math</th>
<th>Science</th>
<th>English</th>
<th>Average</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alice Johnson</td>
<td>92</td>
<td>88</td>
<td>95</td>
<td>91.7</td>
</tr>
<tr>
<td>Bob Wilson</td>
<td>78</td>
<td>82</td>
<td>79</td>
<td>79.7</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Class Average</td>
<td>85</td>
<td>85</td>
<td>87</td>
<td>85.7</td>
</tr>
</tfoot>
</table>
Column and Row Spanning
<table>
<tr>
<th colspan="2">Product Information</th>
<th>Price</th>
</tr>
<tr>
<td rowspan="2">Electronics</td>
<td>Laptop</td>
<td>$999</td>
</tr>
<tr>
<td>Smartphone</td>
<td>$699</td>
</tr>
</table>
📋 Table Structure
- <caption>: Table title
- <thead>: Header section
- <tbody>: Body content
- <tfoot>: Footer summary
🔗 Cell Attributes
- colspan: Span multiple columns
- rowspan: Span multiple rows
- scope: Define header scope
- headers: Associate with headers
Accessibility Best Practices
Table Accessibility
<table>
<caption>Monthly Sales Report by Region</caption>
<thead>
<tr>
<th scope="col">Region</th>
<th scope="col">January</th>
<th scope="col">February</th>
<th scope="col">March</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">North</th>
<td>$12,000</td>
<td>$15,000</td>
<td>$18,000</td>
</tr>
<tr>
<th scope="row">South</th>
<td>$10,000</td>
<td>$13,000</td>
<td>$16,000</td>
</tr>
</tbody>
</table>
List Accessibility
♿ Accessibility Guidelines
- Semantic markup: Use appropriate list types
- Logical structure: Maintain hierarchical order
- Clear content: Write descriptive list items
- Table captions: Always provide context for tables
- Header scope: Define relationships clearly
- Keyboard navigation: Ensure focus management
Practice Exercises
Exercise 1: Course Curriculum
Create a nested list structure for a course:
- 3 main subjects with nested topics
- Use appropriate list types
- Include subtopics and lessons
- Add a glossary using description lists
Exercise 2: Student Grade Table
Build an accessible student grade table:
- Include caption and proper structure
- Use thead, tbody, tfoot
- Add scope attributes
- Include summary calculations
Lesson Summary
🎯 What You Learned
- Three types of HTML lists for different purposes
- Nested lists create hierarchical structures
- Tables organize tabular data effectively
- Semantic table elements improve structure
- Accessibility features help all users
📝 List Types
- <ul>
- Unordered lists (bullet points)
- <ol>
- Ordered lists (numbered)
- <dl>
- Description lists (term-definition)
📊 Table Elements
- <table> - Container element
- <caption> - Table title
- <thead> - Header section
- <tbody> - Main content
- <tfoot> - Footer section
- <th> - Header cells
- <td> - Data cells