this is fine, but lacks any expansion without amending the css and positioning
personally i'd use an unordered list and style each LI to match the dimensions of the icons
that way you can just add extra ones if required and the UL will just expand to as needed.
Of course if you don't plan on having any more than 3, then you don't ~need~ to change the layout.
you have used blank spaces to separate them, which i'd not recommend
I've used something like this before to create a vertical menu made up of images:
Code:
ul#blocks {
list-style-type:none;
padding:0;
margin:0 auto;
overflow:auto;
width: 200px;
}
ul#blocks li {
width:200px;
float:left;
height:125px;
margin-bottom:15px;
}
ul#blocks li.contact { background:url(images/contact.png) no-repeat; }
ul#blocks li.information { background:url(images/info.png) no-repeat; }
ul#blocks li.blog { background:url(images/blog.png) no-repeat; }
ul#blocks li:hover { background-position:0px -125px;}
<!-- markup -->
<ul id="blocks">
<li class="information"> </li>
<li class="blog"></li>
<li class="contact"></li>
</ul>
you can then add content if required, or leave textual links in place aiding with accessibilty etc.
neither way is right or wrong but the CSS i have provided is more "semantically" correct in my eyes.