<div class="lin1">
<div class="lin2">
Текст, который не выходит за пределы lin2. Растягивает его по ширине и высоте, переносит строки.
</div></div>
<style>
.lin1 {
position: relative;
height: auto;
width: 180px;
background: url(...) no-repeat;
}
.lin2 {
width: 150px;
position: absolute;
height: 100%;
display: table;
white-space: normal;
}
</style>
<div class="lin1">
<div class="lin2">
Текст, который не выходит за пределы lin2.
Растягивает его по ширине и высоте, переносит строки.
</div></div>
<style>
.lin1 {
position: relative;
height: auto;
/* формируется из высот содержимого родного потока - у которого дальше содержимого нет */
width: 180px;
background: url(...) no-repeat;
}
.lin2 {
width: 150px;
/* position: absolute; /* выделяется в новый поток непривязаный к родителю. */
position: relative;
/* РЕШЕНИЕ: Меняем на relative чтобы остаться в потоке родителя */
height: 100%;
/* Растягивает блок по высоте первого родителя у которого position отличное от fixed - себя, потому что родитель потока */
display: table;
white-space: normal;
}
</style>