Щоб #outer
висота ґрунтувалася на її вмісті, і на її #inner
основі було встановлено висоту, зробіть обидва елементи абсолютно розміщеними.
Більш детальну інформацію можна знайти в специфікації для властивості висоти css , але по суті, вона #inner
повинна ігнорувати #outer
висоту, якщо #outer
висота є auto
, якщо #outer
вона не розташована абсолютно. Тоді #inner
висота буде 0, якщо тільки #inner
вона не розміщена абсолютно.
<style>
#outer {
position:absolute;
height:auto; width:200px;
border: 1px solid red;
}
#inner {
position:absolute;
height:100%;
width:20px;
border: 1px solid black;
}
</style>
<div id='outer'>
<div id='inner'>
</div>
text
</div>
Однак ... Позиціонуючи #inner
абсолютно, float
налаштування буде проігноровано, тому вам потрібно буде #inner
чітко вибрати ширину та додати набивання, #outer
щоб підробити обгортання тексту, я підозрюю, що ви хочете. Наприклад, внизу обшивка #outer
шириною #inner
+3. Зручно (оскільки вся справа полягала в тому, щоб досягти #inner
висоти до 100%), немає необхідності загортати текст внизу #inner
, тому це буде виглядати так, як #inner
плаває.
<style>
#outer2{
padding-left: 23px;
position:absolute;
height:auto;
width:200px;
border: 1px solid red;
}
#inner2{
left:0;
position:absolute;
height:100%;
width:20px;
border: 1px solid black;
}
</style>
<div id='outer2'>
<div id='inner2'>
</div>
text
</div>
Я видалив попередню відповідь, оскільки вона ґрунтувалася на занадто багато неправильних припущень щодо вашої мети.