Хорошо, учитывая следующий html:
<div class="box">
<div class="row header">
<p><b>header</b>
<br />
<br />(sized to content)</p>
</div>
<div class="row content">
<p>
<b>content</b>
(fills remaining space)
</p>
<div class="subcontent">
test
</div>
</div>
<div class="row footer">
<p><b>footer</b> (fixed height)</p>
</div>
</div>
, где я хочу установить ширину div
subcontent
в "50%" от содержимого div.(таким образом, он изгибается также с размером страницы).
Следующий css "должен" сделать это:
html,
body {
height: 100%;
margin: 0
}
.box {
display: flex;
flex-flow: column;
height: 100%;
background-color: grey;
}
.box .row {
border: 1px dotted black;
}
.box .row.header {
flex: 0 1 auto;
/* The above is shorthand for:
flex-grow: 0,
flex-shrink: 1,
flex-basis: auto
*/
}
.box .row.content {
flex: 1 1 auto;
}
.box .row.footer {
flex: 0 1 40px;
}
.subcontent {
background-color: blue;
height: 50%;
position: absolute;
}
однако я замечаю, что subcontent
теперь масштабируется с областью просмотра, а не сродительское отделениеЭто не то, что я хотел.(На самом деле я хочу, чтобы субконтент составлял ровно 100% от родителя, за вычетом запаса родителя - и того запаса, который я не знаю заранее, он основан на маршруте и, следовательно, основан на динамическом генерировании страниц javascript).