The method you described above is using tables, so it's not any better at all that the first method you described. However, if you are looking for a pure CSS method then
this method is one of the best to use.
I would still use the method you described yourself though, unless you wanted the box to expand horizontally.