Markdown Tight vs Loose Lists

Last updated: 2026-10-14

Tight vs Loose Lists CommonMark core

Blank lines between items decide tight vs loose: tight lists render bare <li> text, loose lists wrap each item in <p> with taller spacing. Visually obvious and CSS-relevant.

GroupEdge Cases & Rules
Spec levelCommonMark core
Spec versionCommonMark 0.31.2 + GFM

📝 Syntax

(blank lines between items = loose list)

▶ Live Example

Edit Markdown on the left, see the result on the right

💡 Key points

ℹ️ Note Tightness is a whole-list property: one blank line makes the entire list loose.
💡 Tip When styling li directly, account for the inner <p> in loose lists.

❓ FAQ

Q How to make a list tight?
A Remove the blank lines between items.
Q Is a loose list a bug?
A Spec behavior: an item with multiple paragraphs should be loose.
Q Does a child list loosen the parent?
A Yes — the blank line above a child list loosens the parent, a classic visual surprise.

📚 See also

Unordered ListsCommonMark core Ordered ListsCommonMark core List NestingCommonMark core
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏