I wrote part of this in comments above, but rewriting here for further clarification.
<span>
is an inline element. Inline elements can't have a fixed width; their width is determined by the width of the text they contain, plus the margins and paddings.
See http://stackoverflow.com/questions/257505/css-fixed-width-in-a-span
You can change this behavior by turning your span into a block-level element. This is done by setting display: block
or display: inline-block
. But this also introduces other behavior, such as floating and taking up a whole line instead of staying inside the paragraph. This, again, can be countered by float: left
and similar options. Weigh the different options and decide based on your needs.
In your specific code example, you might benefit from using <dt>
and <dd>
tags instead. They were built for exactly that purpose.