CSS list-style-type Property

Beginner
⏱️ 5 min read
📚 Updated: Jun 2026
🎯 4 Examples
Lists

What You’ll Learn

The list-style-type property defines the marker style for list items. It controls bullets on unordered lists and numbering styles on ordered lists.

01

Markers

Bullets & numbers.

02

ul & ol

Both list types.

03

disc

Default for ul.

04

decimal

Default for ol.

05

none

Hide markers.

06

Inherited

Set on parent.

Introduction

The list-style-type property in CSS is used to define the appearance of the list item marker for ordered lists (<ol>) and unordered lists (<ul>). This property allows you to customize the bullets, numbers, or other markers that appear before each list item, enhancing the visual presentation of lists on your website.

Definition and Usage

Apply list-style-type on ul, ol, or individual li elements. Use keyword values like square, lower-alpha, or upper-roman to match your design. Pair it with list-style-position and list-style-image, or use the list-style shorthand.

💡
Beginner Tip

Unordered lists (ul) usually use shapes like disc or square. Ordered lists (ol) use counters like decimal or upper-roman.

📝 Syntax

The syntax for the list-style-type property is simple and can be applied to list elements (<ul>, <ol>, <li>):

syntax.css
selector {
  list-style-type: type;
}

Here, type specifies the marker type, which can be a predefined keyword such as disc, decimal, or none.

Basic Example

list-style-type.css
ul {
  list-style-type: square;
}

ol {
  list-style-type: upper-roman;
}

Syntax Rules

  • Values are keywords that define marker appearance.
  • The property is inherited by list items.
  • none removes the marker entirely.
  • Some values work best on ul, others on ol, but browsers accept most keywords on both.

⚡ Quick Reference

QuestionAnswer
Default for uldisc
Default for oldecimal
Applies toList items (display: list-item)
InheritedYes
Common useCustom bullets, numbered steps, and unstyled nav lists

💎 Property Values

ValueDescription
discA filled circle (default for <ul>)
circleA hollow circle
squareA filled square
decimalDecimal numbers, beginning with 1 (default for <ol>)
decimal-leading-zeroDecimal numbers padded with leading zeros (01, 02, 03)
lower-alphaLowercase alphabetical characters (a, b, c, …)
upper-alphaUppercase alphabetical characters (A, B, C, …)
lower-romanLowercase Roman numerals (i, ii, iii, …)
upper-romanUppercase Roman numerals (I, II, III, …)
noneNo marker
disc square decimal upper-roman none

🎯 Default Value

The default value of the list-style-type property depends on the type of list:

  • For unordered lists (<ul>), the default value is disc.
  • For ordered lists (<ol>), the default value is decimal.

👀 Live Preview

Common marker styles at a glance:

disc
  • One
  • Two
square
  • One
  • Two
decimal
  1. One
  2. Two
upper-roman
  1. One
  2. Two

Examples Gallery

Style unordered and ordered lists, compare bullet shapes, use alphabetic counters, and remove markers for navigation.

🔢 ul and ol Markers

Start with the reference example — square bullets on an unordered list and upper-roman numbers on an ordered list.

Example 1 — Square and Upper-Roman Lists

Demonstrate different list-style-type values on an unordered and an ordered list.

list-style-type.html
<style>
  ul {
    list-style-type: square;
  }
  ol {
    list-style-type: upper-roman;
  }
</style>

<h2>Unordered List</h2>
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

<h2>Ordered List</h2>
<ol>
  <li>First</li>
  <li>Second</li>
  <li>Third</li>
</ol>
Try It Yourself

How It Works

The unordered list uses square bullets. The ordered list uses uppercase Roman numerals (I, II, III) instead of plain numbers.

Example 2 — Bullet Shape Comparison

Compare disc, circle, and square on unordered lists.

list-style-type-bullets.css
.disc { list-style-type: disc; }
.circle { list-style-type: circle; }
.square { list-style-type: square; }
Try It Yourself

How It Works

All three are classic unordered-list markers. disc is the browser default for ul elements.

📈 Ordered Counters & Navigation

Use alphabetic numbering styles and remove markers when lists serve as navigation.

Example 3 — lower-alpha and decimal-leading-zero

Style ordered lists with letters and zero-padded numbers.

list-style-type-counters.css
ol.alpha {
  list-style-type: lower-alpha;
}

ol.padded {
  list-style-type: decimal-leading-zero;
}
Try It Yourself

How It Works

lower-alpha produces a, b, c numbering. decimal-leading-zero produces 01, 02, 03 style counters.

Example 4 — Remove Markers with none

Hide bullets when a list is used for horizontal navigation.

list-style-type-none.css
nav ul {
  list-style-type: none;
  display: flex;
  gap: 1rem;
  padding: 0;
  margin: 0;
}
Try It Yourself

How It Works

list-style-type: none removes visible markers while keeping the semantic list structure for accessibility.

♿ Accessibility

  • Use real list elements — Keep ul and ol markup even when markers are hidden with none.
  • Do not remove markers from true content lists without reason — Bullets and numbers help users scan items.
  • Screen readers still announce list length — Marker styling is mostly visual.
  • Choose readable counter styles — Very decorative numbering can confuse readers on long lists.
  • Nest lists properly — Use sub-lists for hierarchy instead of manual prefixes in text.

🧠 How list-style-type Works

1

You choose a marker keyword

Set list-style-type to values like square, decimal, or none.

CSS rule
2

Browser generates markers

Each list item gets a bullet, number, letter, or Roman numeral based on your chosen type.

Rendering
3

Inheritance applies to items

Setting the type on ul or ol styles all child list items unless overridden.

Cascade
=

Custom list presentation

Lists match your site design while staying semantic and accessible.

🖥 Browser Compatibility

The list-style-type property is widely supported across all modern browsers, including Chrome, Firefox, Safari, Edge, and Opera. This property has been part of CSS for a long time, so it works reliably across various browser versions.

Universal · All browsers

Marker styles everywhere

list-style-type is one of the most reliable CSS properties for list styling.

99% Global browser support
Google Chrome All versions · Desktop & Mobile
Full support
Mozilla Firefox All versions · Desktop & Mobile
Full support
Apple Safari All versions · macOS & iOS
Full support
Microsoft Edge All versions · Legacy & Chromium
Full support
Opera All versions · Modern & legacy
Full support
list-style-type property 99% supported

Bottom line: Safe to use everywhere. Combine with list-style-position and list-style-image for full control.

🎉 Conclusion

The list-style-type property provides a simple yet effective way to customize the appearance of list markers on your website. Whether you’re aiming for a standard look with numbers and bullets or a more unique style with Roman numerals and square markers, this property gives you the flexibility to enhance the presentation of your lists.

Experiment with different values to find the perfect match for your website’s design. Start with the defaults (disc and decimal), then explore alphabetic and Roman styles for steps, outlines, and legal content.

💡 Best Practices

✅ Do

  • Use disc or square for simple unordered lists
  • Use decimal for step-by-step instructions
  • Use none for navigation menus
  • Keep marker styles consistent across your site
  • Combine with the list-style shorthand when needed

❌ Don’t

  • Replace lists with divs just to avoid default bullets
  • Mix too many marker styles on one page
  • Use Roman numerals on very long lists without testing readability
  • Confuse marker type with marker position
  • Remove markers from content lists that benefit from scanning

Key Takeaways

Knowledge Unlocked

Five things to remember about list-style-type

Use these points when styling list markers.

5
Core concepts
disc 02

ul default

disc.

Default
1. 03

ol default

decimal.

Default
I 04

Many keywords

square, roman.

Values
05

Semantic

Keep real lists.

A11y

❓ Frequently Asked Questions

list-style-type defines the appearance of the list item marker, such as a bullet, number, letter, or Roman numeral, for ul and ol lists.
For unordered lists (ul), the default is disc. For ordered lists (ol), the default is decimal.
Use list-style-type: none to hide markers. This is common for navigation menus built with ul or ol.
list-style-type chooses the marker shape or numbering style. list-style-position controls whether the marker sits inside or outside the list item.
Yes. list-style-type is inherited, so setting it on ul or ol affects nested list items unless they override it.

Practice in the Live Editor

Open the HTML editor, try different list-style-type values on ul and ol elements, and preview the results instantly.

HTML Editor →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful