« back to CSS Swag: Styling Multiple-Column Lists

Method 3: Numbering split lists with CSS generated content

  1. Aloe
  2. Bergamot
  3. Calendula
  4. Damiana
  5. Elderflower
  1. Feverfew
  2. Ginger
  3. Hops
  4. Iris
  5. Juniper
  1. Kava kava
  2. Lavender
  3. Marjoram
  4. Nutmeg
  5. Oregano
  6. Pennyroyal

The above markup should render like this:

Method 3: Numbering split lists with CSS generated content

Notes:

XHTML:

<div class="outerwrap">
  <div class="wrapper">
    <ol
      ><li><a href="#">Aloe</a></li
      ><li><a href="#">Bergamot</a></li
      ><li><a href="#">Calendula</a></li
      ><li><a href="#">Damiana</a></li
      ><li><a href="#">Elderflower</a></li
    ></ol>
  </div><!-- .wrapper -->

  <div class="wrapper">
    <ol
      ><li><a href="#">Feverfew</a></li
      ><li><a href="#">Ginger</a></li
      ><li><a href="#">Hops</a></li
      ><li><a href="#">Iris</a></li
      ><li><a href="#">Juniper</a></li
    ></ol>
  </div><!-- .wrapper -->

  <div class="wrapper">
    <ol
      ><li><a href="#">Kava kava</a></li
      ><li><a href="#">Lavender</a></li
      ><li><a href="#">Marjoram</a></li
      ><li><a href="#">Nutmeg</a></li
      ><li><a href="#">Oregano</a></li
      ><li><a href="#">Pennyroyal</a></li
    ></ol>
  </div><!-- .wrapper -->

  <br />
</div><!-- .outerwrap -->

CSS:

/* separate lists from subsequent content */
div.outerwrap
{
  margin-bottom: 1em;
}

/* position list chunks side by side */
div.wrapper
{
  float: left;
  width: 10em;
}

/* clear float after lists */
br
{
  clear: left;
}
/* remove default spacing  to 
promote cross-browser consistency */
ol
{
  margin: 0;
  padding: 0;
}

/* suppress normal list item numbering */
ol li
{
  list-style-type: none;
}

/* generate new item numbers that 
continue from one list to the next */
ol li:before
{
  content: counter(item) ". ";
  counter-increment: item;
}
/* anchor styling */
ol li a
{
  text-decoration: none;
}
ol li a:hover
{
  color: #FFF; /* white */
  background-color: #A52A2A; /* brown */
}