Ich brauche ein 2 Zeilen Layout für eine Web-Seite erstellen einen Abschnitt für Filter und anderen Abschnitt für die Ergebnisse mit den folgenden Eigenschaften zu verwalten:Zwei Reihen Layout mit nur CSS
- die Seite mit der Höhe nicht überlaufen kann von 100%
- Die Höhe der ersten Zeile basiert auf seinem Inhalt (könnte variabel sein und eine JavaScript-Funktion kann es durch das Verstecken einiger Elemente verändern)
- Die Höhe der zweiten Zeile ist der Unterschied zwischen 100% und der Höhe der ersten Reihe
- in t er Reihe Sekunde, um die div mit Überlauf muss derjenige mit Klasse „Liste“ und ich kann es nicht mit class = „Ergebnis“ div bewegen (das wird es funktioniert)
HTML:
<div class="main">
<div class="filter">
<div class="filtercontent">
filter content
</div>
</div>
<div class="result">
<div class="resultcontent">
<div class="list">
<div class="listcontent">
list content
</div>
</div>
</div>
</div>
</div>
CSS:
.main {
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
}
.filter {
width: 100%;
}
.result {
width: 100%;
}
.resultcontent {
height: 100%;
width: 100%;
}
.list {
height: 100%;
width: 100%;
overflow: auto;
}
.listcontent {
height: 1000px;
width: 2000px;
}
ich habe versucht, mit Flexbox (auf unterschiedliche Weise), aber ich kann keine Lösung für den letzten Punkt finden.
WICHTIG: Ich kann Javascript nicht verwenden, um die Höhe der Zeilen festzulegen. Ich brauche eine Lösung, die nur CSS verwendet.
Danke!
Danke für die Antwort. Ich habe bereits versucht, "flex: 1" zu setzen, aber sein Kind (mit der Höhe: 100%) kann die tatsächliche Höhe seines Elternteils nicht erkennen. – Fabio
Das liegt daran, dass diese Form der Eigenschaftsdeklaration (mit Prozent) immer relativ zu ihrem Elternteil ist "Kaskadierung" durch das Wurzelelement. Wenn Sie Höhe: 100% zu HTML und Body-Elemente und Überlauf: versteckt zu .main Klasse sollten Sie gut zu gehen. –