CSS captioned image

Need a captioned image that will float right or left without having to use tables?
CSS
.imgcaption{
    margin: 5px;
    float: right;
}

.imgcaption img{
    display: block;
}

.imgcaption label{
    display: block;
    color: #FFFFFF;
    background-color: #CA0101;
    padding: 2px;
}

XHTML
<div class="imgcaption">
<img src="/wp-images/oldblog/busybumblebee.jpeg" alt="" id="img" >
<label for="img">Caption</label>
</div>