The list-style-type property sets the marker of a list item — a bullet, number, letter, Roman numeral, custom string, or no marker.
It applies to elements with display: list-item (including <li>). The CSS initial value is disc. It is inherited. Pair it with list-style-position and list-style-image, or use the list-style shorthand.
Baseline · Widely available.
Common markers (disc, decimal, none, and so on) are not deprecated. Some regional counter styles and string markers have uneven support.
Accessibility.
In Safari, list-style-type: none can remove list semantics. Add role="list" on the <ul>/<ol> if it should still be announced as a list.
Keep list semantics.role="list" helps Safari still expose a list to assistive tech.
Style spacing next. You may also reset padding/margin for a flat nav look.
Shorthand option.list-style: none clears type, position, and image together.
Edge Cases & Pitfalls
Most surprises come from inheritance, Safari, or nested lists.
nested
Nested lists reset to UA defaults
Browsers style nested ul/ol again. Use list-style-type: inherit on the nested list to keep the parent marker.
a11y
none can drop list semantics in Safari
Add role="list" when you hide markers but still want a list in the accessibility tree.
image
Image can hide the type
If list-style-image is set, that image is used instead of the type marker when it loads.
display
Needs list-item display
Markers appear on list items. Changing an item to display: block removes the marker behavior.
support
Some styles need fonts / newer browsers
Regional counter styles and string markers may not look right everywhere. Stick to common keywords for cross-browser UI.
Compatibility
Browser Support
list-style-type is a browser CSS property for list markers. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
list-style-type
Common marker keywords are supported in all modern browsers. Some regional styles and string values vary by browser and fonts.
98%Common markers
Google Chrome1+
Full support
Mozilla Firefox1+
Full support
Apple Safari1+
Full support
Microsoft Edge12+
Full support
Opera7+
Full support
Samsung Internet1+
Full support
Internet Explorer4+
Full support
list-style-typeWidely supported
Bottom line: Safe for everyday disc, decimal, alpha, roman, and none. Test specialty counter styles if you need them. It is not a runtime API.
Remember
Key Takeaways
Role: choose the list item marker look.
Defaults:disc for many uls, decimal for many ols.
Menus: use none, and consider role="list" in Safari.
Nested lists: set inherit if children should keep the parent marker.
One line:list-style-type picks the marker — bullets, numbers, letters, or none.
Frequently Asked Questions
It sets the marker for a list item — for example a disc, circle, square, number, letter, Roman numeral, custom string, or none.
The CSS initial value is disc. User-agent styles usually set unordered lists to disc and ordered lists to decimal.
Use list-style-type: none. In Safari, also add role="list" on the list if assistive tech should still treat it as a list.
Yes. Nested lists may still show browser defaults unless you set list-style-type: inherit on the nested ul or ol.
list-style-type sets only the marker kind. list-style is the shorthand for type, position, and image.
Common values are Baseline and widely available. Some regional counter styles and string markers have uneven support. It is a browser CSS property, not a Node.js feature.