Bhylu

CSS Lists

List markers communicate a relationship between items. CSS can change marker style and spacing while HTML preserves list semantics.

How it works

  • Typography should remain readable when the browser zooms or a visitor substitutes their own font. Start with comfortable line length and line height.
  • Inspect the specific property in the example, then compare the heading, body text, and badge. They may inherit different values.

A practical example

The HTML supplies the content; the CSS below styles it. Open both together in the playground, then change the lesson rules at the end of the stylesheet.

HTML

<section class="card"><h2>Bring to the workshop</h2><ul><li>A small repair project</li><li>Any matching spare parts</li><li>A question for the group</li></ul></section>
CSS

body { margin: 0; padding: 24px; font-family: system-ui, sans-serif; color: #25332d; background: #f4f7f2; }
.card { padding: 20px; background: white; border: 1px solid #d4dfd6; }
h2 { margin-top: 0; }
p { line-height: 1.6; }
a { color: #17634c; }
.badge { display: inline-block; margin-bottom: 12px; font-size: .8rem; }
.layout { display: grid; gap: 16px; }
.photo { width: 100%; height: 160px; background: linear-gradient(135deg, #e4af6b, #668cba); }
button, input, select { font: inherit; padding: 8px; }
label { display: block; margin-block: 12px 4px; }

/* This lesson */
ul { list-style: square; padding-inline-start: 1.5rem; }
li + li { margin-top: .5rem; }

List markers communicate a relationship between items. CSS can change marker style and spacing while HTML preserves list semantics.