Display block without 100% width
Solution 1:
Use display: table
.
This answer must be at least 30 characters; I entered 20, so here's a few more.
Solution 2:
If I'm understanding your question properly, the following CSS will float your a below the spans and keep it from having a 100% width:
a {
display: block;
float: left;
clear: left;
}