HTML

HTML

HTML Lists

HTML lists are a core component of web development. They help structure content by grouping related items into ordered or unordered formats, making information easier to read and more visually appealing. Whether you’re creating a shopping list, a set of instructions, or a navigation menu, HTML lists enable you to present data in a structured, accessible way.

In this tutorial, you’ll learn about the three main types of HTML lists, how to nest and style them, and best practices for ensuring semantic correctness and accessibility.

Learning Outcomes

By the end of this tutorial, you will be able to:

  • Understand the structure and purpose of unordered, ordered, and description lists.
  • Write clean, semantic HTML using <ul>, <ol>, <li>, <dl>, <dt>, and <dd> tags.
  • Nest lists within each other to create complex, hierarchical content.
  • Apply CSS to style list markers, spacing, and fonts.
  • Follow best practices for accessibility and semantic correctness.

Unordered Lists

Unordered lists are used for items where the order does not matter. They are perfect for presenting items like a shopping list or a list of features where sequence is not critical.

πŸ“Œ Syntax & Code Example

An unordered list starts with the <ul> tag. Each item in the list is wrapped in an <li> (list item) tag.

<ul>
  <li>Milk</li>
  <li>Eggs</li>
  <li>Bread</li>
  <li>Hummus</li>
</ul>

Output:

  • Milk
  • Eggs
  • Bread
  • Hummus

Attributes

  • compact: Historically used to render the list with less space (Note: not supported in HTML5. Use CSS).
  • type: Specifies the marker type (e.g., disc, circle, square) for browsers that still support it. For modern projects, use CSS with the list-style-type property.

Ordered Lists

Ordered lists are used when the sequence of items is importantβ€”such as step-by-step instructions or ranking items. Each list item is automatically numbered.

πŸ“Œ Syntax & Code Example

Ordered lists start with the <ol> tag, and list items are still wrapped in <li> tags.

<ol>
  <li>Drive to the end of the road</li>
  <li>Turn right</li>
  <li>Go straight across the first two roundabouts</li>
  <li>Turn left at the third roundabout</li>
  <li>The school is on your right</li>
</ol>

Output:

  1. Drive to the end of the road
  2. Turn right
  3. Go straight across the first two roundabouts
  4. Turn left at the third roundabout
  5. The school is on your right

Attributes

  • reversed: Reverses the numbering order.
  • start: Sets the starting number for the list.
  • type: Allows you to specify the numbering style (e.g., numeric, alphabetic, or roman numerals).

Example with Attributes

<!-- A reversed ordered list -->
<ol reversed>
  <li>HTML</li>
  <li>Python</li>
  <li>JavaScript</li>
</ol>

<!-- An ordered list starting at 5 -->
<ol start="5">
  <li>HTML</li>
  <li>Python</li>
  <li>JavaScript</li>
</ol>

<!-- An ordered list with roman numerals -->
<ol type="i">
  <li>HTML</li>
  <li>Python</li>
  <li>JavaScript</li>
</ol>

Output:

  1. HTML
  2. Python
  3. JavaScript
  1. HTML
  2. Python
  3. JavaScript
  1. HTML
  2. Python
  3. JavaScript

Description Lists

Description lists are used to present terms and their corresponding definitions. They are ideal for glossaries, FAQs, or any list of items where a description is necessary.

πŸ“Œ Syntax & Code Example

A description list is built using three tags:

  • <dl> Wraps the entire list.
  • <dt> Specifies the term.
  • <dd> Provides the description for the term.
<dl>
  <dt>HTML</dt>
  <dd>HyperText Markup Language</dd>
  <dt>CSS</dt>
  <dd>Cascading Style Sheets</dd>
  <dt>JavaScript</dt>
  <dd>A scripting language for creating dynamic content on the web</dd>
</dl>

Output:

HTML
HyperText Markup Language
CSS
Cascading Style Sheets
JavaScript
A scripting language for creating dynamic content on the web

Advanced Usage

You can include multiple <dd> elements for one <dt> if a term has several definitions.

Nested Lists

Nested lists allow you to organize complex information hierarchically. For example, you might have sub-steps or additional details related to a primary list item.

πŸ“Œ Code Example: Nesting an Unordered List within an Ordered List

<ol>
  <li>Prepare the ingredients:
    <ul>
      <li>Chop garlic</li>
      <li>Dice onions</li>
    </ul>
  </li>
  <li>Mix the ingredients</li>
  <li>Season to taste</li>
</ol>

Output:

  1. Prepare the ingredients:
    • Chop garlic
    • Dice onions
  2. Mix the ingredients
  3. Season to taste

Grouping Lists with Divs

Purpose of Grouping

Grouping lists inside <div> elements is useful for layout purposes. It allows you to apply consistent styling or positioning to a group of lists, which is particularly useful in more complex page designs.

πŸ“Œ Code Example

<div>
  <p>First List</p>
  <ol>
    <li>Item One</li>
    <li>Item Two</li>
  </ol>
</div>
<div>
  <p>Second List</p>
  <ol>
    <li>Item Three</li>
    <li>Item Four</li>
  </ol>
</div>

Output:

First List

  1. Item One
  2. Item Two

Second List

  1. Item Three
  2. Item Four

HTML List Tags

Tag Description
<ul> Defines an unordered list (bullets)
<ol> Defines an ordered list (numbers/letters)
<li> Defines a list item
<dl> Defines a description list
<dt> Defines a term in a description list
<dd> Provides the description for the term

Styling HTML Lists with CSS

Enhancing Visual Presentation

CSS is powerful when it comes to styling lists. You can change the marker type, adjust spacing, and modify fonts to match your website’s design.

Using CSS to Change Marker Types

The list-style-type property allows you to customize the appearance of list markers.

πŸ“Œ Code Example

<style>
  li {
    font-size: 16px;
    list-style-type: square; /* Changes bullet style to square */
  }
</style>

<ul>
  <li>Styled Item One</li>
  <li>Styled Item Two</li>
</ul>

Additional Styling Options

  • Spacing: Adjust padding and margins to control the space between items.
  • Font & Color: Use CSS properties like font-family, color, and font-weight to enhance readability.
  • Custom Markers: You can even use images as list markers by setting the list-style-image property.

Best Practices for HTML Lists

Semantic Correctness

  • Use the Right List:
    • Use <ul> for unordered data, <ol> for sequential data, and <dl> for term-description pairs.
  • Keep It Clean:
    • Write clear, semantic code that aids both developers and accessibility tools like screen readers.

Accessibility

  • Screen Readers:
    • Properly structured lists improve navigation and understanding for users relying on screen readers.
  • Keyboard Navigation:
    • Ensuring lists are semantically correct helps users who navigate via keyboards.

Performance & Readability

  • Minimal Markup:
    • Avoid excessive nesting and unnecessary attributes.
  • Consistent Styling:
    • Group lists logically and use CSS to maintain visual consistency.

Frequently Asked Questions on HTML Lists (FAQs)

What Are HTML Lists?

HTML lists are used to group related items into a structured format. They can be unordered (bulleted), ordered (numbered), or descriptive (terms with descriptions).

What Are the Three 3 Types of List Elements Used in HTML?

There are three types of lists in HTML:

  • Unordered list or Bulleted list <ul>
  • Ordered list or Numbered list <ol>
  • Description list or Definition list <dl>

How Do I Create an Unordered List?

Wrap your list items in a <ul> tag and each item in <li> tags:

<ul>
  <li>Item One</li>
  <li>Item Two</li>
</ul>

What’s the Difference Between <ul> and <ol>?

  • <ul> Creates a list with bullet points.
  • <ol> Creates a numbered list, which can also be styled with different numbering systems.

How Do I Nest Lists in HTML?

Place a <ul> or <ol> inside an <li> to create a nested list:

<ol>
  <li>Main item
    <ul>
      <li>Subitem</li>
    </ul>
  </li>
</ol>

How Can I Style List Markers with CSS?

Use the list-style-type property to customize markers:

li {
  list-style-type: circle;
}

Can We Use <li> Without <ul>?

The <li> HTML element is used only to represent an item in a list. It must be contained in a parent element: an ordered list <ol>, an unordered list <ul>, or a menu <menu>.

Subscribe to our newsletter

Get the freshest news and resources for developers, designers and digital creators in your inbox each week

Β© 2000 – 2025 SitePoint Pty. Ltd.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.