Вам нужно создать 8 изображений с поддержкой прозрачности.
4 изображения для сторон: сверху, слева, справа, снизу
4 изображения для углов
Для средней части вы можете иметь div и заполнить его этим фоновым цветом.
Если вы говорите о чистом CSS-способе, то вам нужно знать, что его текущее состояние не позволяет вам иметь ни круглые углы, ни тени в кросс-браузерном режиме.
Когда у вас есть ваши изображения, вы можете склеить их так:
<div style="background: url('/topleft.png') no-repeat;">
<div style="background: url('/topright.png') right no-repeat;">
<div style="background: url('/bottomleft.png') bottom no-repeat;">
<div style="background: url('/bottomright.png') bottom right no-repeat;">
<div style="padding: 0 5px; background: url('/top.png') repeat-x;">
<div style="background: url('/bottom.png') bottom repeat-x;">
<div style="position:relative; left: -5px;
background: url('/left.png') repeat-y;">
<div style="position:relative; left: 10px;
background: url('/right.png') right repeat-y;">
<div style="position:relative; right: 5px;
background: #fff68f;">
We got it!
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
P.S. Да, это безумие, я знаю.
P.S. # 2: Чтобы сделать это «быстро», вы можете объединить их в каком-нибудь мастер-образе и использовать технику CSS sprites . Но для того, чтобы это работало, вы должны обеспечить достаточное пустое пространство между изображениями (прочитайте статью, чтобы понять почему), в противном случае эти 9 вложенных элементов могут взорваться еще дальше.