Hier ist der Code, mit dem ich das obige Layout erreiche:
.header {
height: 50px;
}
.body {
position: absolute;
top: 50px;
right: 0;
bottom: 0;
left: 0;
display: flex;
}
.sidebar {
width: 140px;
}
.main {
flex: 1;
display: flex;
flex-direction: column;
}
.content {
flex: 1;
display: flex;
}
.column {
padding: 20px;
border-right: 1px solid #999;
}
<div class="header">Main header</div>
<div class="body">
<div class="sidebar">Sidebar</div>
<div class="main">
<div class="page-header">Page Header. Content columns are below.</div>
<div class="content">
<div class="column">Column 1</div>
<div class="column">Column 1</div>
<div class="column">Column 1</div>
</div>
</div>
</div>
Ich habe den für das Styling verwendeten Code weggelassen. Sie können alles im Stift sehen .
Das Obige funktioniert, aber wenn der content
Inhalt des Bereichs überläuft, wird die gesamte Seite gescrollt. Ich möchte nur, dass der Inhaltsbereich selbst gescrollt wird, also habe ich overflow: auto
dem content
div hinzugefügt .
Das Problem dabei ist nun, dass die Spalten selbst nicht über die Höhe ihrer Eltern hinausragen, sodass auch dort die Ränder abgeschnitten werden.
Hier ist der Stift, der das Bildlaufproblem zeigt .
Wie kann ich festlegen, dass der content
Bereich unabhängig gescrollt wird, während die untergeordneten Elemente weiterhin über die content
Höhe der Box hinausragen ?