CSS Lists

Last Updated : 11 May, 2026

CSS Lists are used to display items in a clear and organized manner, either with bullets (unordered) or numbers (ordered).

  • CSS lists help present items in an organized way using bullets or numbers, making webpage content clear and easy to read.
  • CSS allows customization of list styles, improving the visual design and layout of list elements.

Try It:

Decimal
Decimal Leading Zero
Lower Roman
Upper Roman
Lower Alpha
Upper Alpha
Square
None
Circle
  1. Item 1
  2. Item 2
  3. Item 3


Currently Active Property:

list-style-type: decimal;
HTML
<!--Driver Code Starts-->
<html>
<head>
<!--Driver Code Ends-->

  <style>
    ul {
      list-style-type: square; 
    }
  </style>

<!--Driver Code Starts-->
</head>
<body>
  <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
  </ul>
</body>
</html>

<!--Driver Code Ends-->
  • The <ul> element represents an unordered list.
  • The list-style-type: square; declaration changes the default bullet points to squares.

Types of Lists in CSS

The list can be categorized into 2 types:

  • Unordered List: In unordered list, the list items are marked with bullets i.e. small black circles by default.
  • Ordered List: In ordered list, the list items are marked with numbers and an alphabet.

Properties of CSS List

We have the following CSS lists properties, which can be used to control the CSS lists:

PropertyDescription
list-style-typeSpecifies the appearance of the list item marker (e.g., disc, circle, square, numbers, etc.).
list-style-imageSets the image to be used as the list item marker, replacing the default marker with a custom image.
list-style-positionDefines the position of the marker relative to the list item's content (inside or outside the list item).
list-styleA shorthand property to set list-style-type, list-style-position, and list-style-image together.

List Item Marker

The list-style-type property defines the marker for each list item. By default, unordered lists have a disc-shaped marker. You can change it to different types like numbers, squares, or images.

Syntax:

list-style-type: value;

The following value can be used:

CSS List Style TypeDescription
noneNo bullet or marker is shown for the list items.
circleDisplays a hollow circle as the marker, commonly used for unordered lists.
decimalNumbers the list items sequentially, starting from 1 (e.g., 1, 2, 3...).
decimal-leading-zeroSimilar to decimal, but adds leading zeroes (e.g., 01, 02, 03...).
lower-romanUses lowercase Roman numerals for list markers (e.g., i, ii, iii...).
upper-romanShows uppercase Roman numerals as markers (e.g., I, II, III...).
lower-alphaAssigns lowercase alphabet letters (e.g., a, b, c...) for ordered list markers.
upper-alphaMarks ordered list items with uppercase letters (e.g., A, B, C...).
squareDisplays a solid square as the marker for unordered lists.

More examples on CSS Lists

Here some more examples:

Custom Bullet Points

HTML
<!--Driver Code Starts-->
<html>
<head>
<!--Driver Code Ends-->

    <style>
        ul.custom-bullets {
            list-style-type: none;
            padding-left: 0;
        }
    </style>

<!--Driver Code Starts-->
</head>
<body>
    <ul class="custom-bullets">
        <li>First item</li>
        <li>Second item</li>
        <li>Third item</li>
    </ul>
</body>
</html>
<!--Driver Code Ends-->
  • The list-style-type: none; removes the default bullet points.

Ordered List with Custom Numbering

HTML
<!--Driver Code Starts-->
<html>
<head>
<!--Driver Code Ends-->

	<style>
		ol.custom-numbers {
			list-style-type: none;
			counter-reset: custom-counter;
			padding-left: 0;
		}
		ol.custom-numbers li {
			counter-increment: custom-counter;
			margin-bottom: 5px;
		}
		ol.custom-numbers li::before {
			content: counter(custom-counter) ". ";
			font-weight: bold;
			margin-right: 5px;
		}
	</style>

<!--Driver Code Starts-->
</head>
<body>
	<ol class="custom-numbers">
		<li>Step one</li>
		<li>Step two</li>
		<li>Step three</li>
	</ol>
</body>
</html>
<!--Driver Code Ends-->
  • The counter-reset: custom-counter; initializes a custom counter for the list.
  • Each li increments the counter, and the ::before pseudo-element displays the current counter value followed by a period.

Best Practices for CSS Lists

Proper CSS list styling improves readability, maintains a consistent design, and ensures lists are visually clear and easy to navigate.

  • Use Consistent Styling: Ensure uniform appearance across all lists by defining standard styles for list types (ul, ol) and list items (li).
  • Maintain Proper Indentation: Align nested lists correctly to reflect hierarchy, enhancing readability and structure.
  • Customize List Markers Thoughtfully: Use list-style-type or custom markers to match the design aesthetic, ensuring they enhance user experience without causing confusion.
Comment