Actually whilst going to try that I've spotted the error that was stopping my original way from doing it - I was defining the height of the bonus element, whereas I needed to add an additional element around the bonus and define the height of that instead.
eg:
Code:
<div class="elementouter">
<div class="elementinner">Bonus</div>
</div>
For anyone else in the same situation (or me for when I forget again) to get it to work use this:
Code:
.elementouter {height:50px}
.elementinner {position: relative;top: 50%;transform: translateY(-50%);}
Probably wouldn't have noticed if it weren't for the fact I went back to add additional classes, so cheers for that.