Я не исключаю, что есть возможность обойтись CSS средствами, но, не являясь специалистом по верстке, не смог найти подходящего решения.
Например, я пробовал так:
<div style="width: 10px;">
<div style="width: 100%">текст текст текст текст текст текст текст текст текст текст</div>
<img src="1.jpg">
<div style="width: 100%">текст текст текст текст текст текст текст текст текст текст</div>
</div>
Изображение, загружаясь растягивает основной слой, а вот два вложенных так и остаются. Вроде бы у них 100%, но они берутся от исходных 10px родительского, несмотря на то, что он растягивается позже.
Могу конечно анализировать html средствами php и еще на сервере проставлять размеры для слоев, основываясь на размерах изображений. Но это тоже не вариант.