How to Style an A to Z Index with CSS

I’ve always been taken with the way that the BBC styles their A-Z index using a simple list and CSS. However, because they use pixels to set the dimensions of each list item, the design breaks when you increase the text size.

Consequently, I thought I’d have a go at creating an A to Z index along the same lines that doesn’t break when you resize your text.

The code is pretty straight forward. Here’s the CSS:

#azindex {
background: #75B9D0;
float: left;
margin: 5px 0 20px 10px;
padding: 0px 5px 15px 5px;
width: 520px;
}
* html #azindex {
padding: 5px 5px 10px 5px;
width: 490px;
}
#index {
font: bold 100% Verdana, Helvetica, sans-serif;
margin: 0;
padding: 0;
}
#index li {
float: left;
height: 2em;
list-style-type: none;
margin: 0.65em 0.3em;
padding: 0;
width: 3em;
}
* html #index li {
margin: 0.2em 0.2em;
}
#index a:link, #index a:visited {
background: #fff;
color: navy;
display: block;
height: 2em;
padding: 0.75em 0 0 0;
text-align: center;
text-decoration: none;
width: 3em;
}
#index a:hover {
background: #93D1E4;
color: #fff;
text-decoration: underline;
}

And here’s the HTML:

<div id="azindex">
<ul id="index">
<ul>
<li><a href="#a">A</a></li>
<li><a href="#b">B</a></li>
<li><a href="#c">C</a></li>
<li><a href="#">Etc</a></li>
<li><a href="#z">Z</a></li>
</ul>
</ul>
</div>

Pretty simple, but hopefully it’ll be useful to someone.

5 thoughts to “How to Style an A to Z Index with CSS”

  1. That’s a really useful guide. Good stuff. I’m surprised the BBC aren’t approaching accessibility more on their website, actually.
    I was able to help a friend today by linking him to this, too, so thanks.

  2. Richard – glad it was helpful! Actually, I think the BBC are leaders as far as accessibility on large sites is concerned; they just didn’t go as far as they could have in this instance.

  3. Hi Christian,
    Really nice treatment for an A to Z but it’s not working for me in Firefox, any suggestions?

  4. Hi Christian,
    sorry for wasting your time,
    working now, must have made a mistake when I was copyting and pasting 🙂

Comments are closed.