Premium CSS Course

CSS Lists Styling

Lists are fundamental HTML elements used to display groups of items. With CSS, you can customize both ordered and unordered lists. You can change the appearance of list markers (like bullets or numbers) and apply various styles to list items.

Types of Lists

There are two main types of lists in HTML:

Basic List Styling

To customize lists, you can use the list-style-type property. This property controls the type of list marker used.


        ul {
            list-style-type: square; /* Changes the bullet to a square */
        }

        ol {
            list-style-type: decimal; /* Default numbering style */
        }
    

In the example above, an unordered list (<ul>) uses square bullets, while an ordered list (<ol>) uses the default decimal numbering.

List Style Position

The list-style-position property determines whether the list marker is inside or outside the list item.


        ul {
            list-style-position: inside;
        }

        ol {
            list-style-position: outside;
        }
    

By default, list-style-position is set to outside, but you can change it to inside for different effects.

Custom List Markers

CSS allows you to create custom markers using the list-style-image property. You can replace the default bullets or numbers with an image of your choice.


        ul {
            list-style-image: url('custom-bullet.png');
        }
    

This will replace the default bullets with a custom image, such as a PNG file.

Advanced List Styling

You can combine multiple list styling properties to achieve more advanced effects. For example, you can remove the default markers and add custom icons, or change the spacing between list items.


        ul {
            list-style-type: none; /* Remove default bullet */
            padding-left: 0;
        }

        ul li::before {
            content: url('icon.png'); /* Add a custom icon before each list item */
            margin-right: 10px;
        }
    

This example removes the default list marker and adds a custom icon before each list item using the ::before pseudo-element.

Nested Lists

CSS allows you to style nested lists (lists within lists). You can customize the nested lists with different styles, fonts, and markers.


        ul {
            list-style-type: disc;
        }

        ul ul {
            list-style-type: circle; /* Nested lists have a circle bullet */
        }
    

In this example, the main unordered list uses a disc marker, while the nested unordered list uses a circle marker.

List Item Spacing

You can adjust the space between list items by setting the margin or padding for <li> elements.


        li {
            margin-bottom: 10px; /* Adds space between list items */
        }
    

This adds 10px of space below each list item.

Best Practices for Styling Lists