Вот, блок который имеет блоки по углам и сторонам, а также внутренний блок, который задаёт размер исходя из контента.
Также можно задать максимальный размер по разным осям, что я и сделал по ширине просто для примера.
http://jsfiddle.net/yhYtP/5/
В Опере не проверял, потому что мне на неё по*уй.