Sembra che dovrebbe essere possibile con la flexbox, ma non riesco a capirlo.Può Flexbox? Finestra di chat con input in basso, chat a scorrimento
http://codepen.io/MichaelJCole/pen/NGBVGe
Obiettivi:
- textarea (per typeing nei messaggi) rimane in fondo tutto il tempo.
- le chat iniziano nella parte inferiore, quindi eseguono lo scorrimento verso l'alto in base alle esigenze.
- Se si utilizza "Google Hangouts", come l'app messaggio in questo.
Ecco il markup:
<div id="chatBar">
<div id="chatList">
<div class="chat mine">hello world</div>
<div class="chat theirs">hello moon</div>
</div>
<input id="chatBarInput" class="form-control" type="textarea">
</div>
Ed ecco il CSS:
html, body { height: 100%; }
#chatBar {
height: 100%;
display: flex;
flex-flow: column nowrap;
justify-content: flex-end;
overflow: none;
}
#chatList {
flex: 0 1 auto;
display: flex;
flex-flow: column nowrap;
justify-content: flex-end;
overflow-y: scroll;
}
#chatBarInput {
flex: 1 0 auto;
}
.chat {
flex: none;
align-self: flex-start;
background-color: lightgreen;
}
.chat.mine {
align-self: flex-end;
background-color: pink;
}
non riesco a ottenere #chatBar
a "spremere" #chatList
senza impostare un'altezza. Che cosa stavo cercando di evitare usando flexbox: -/
Spiacente, sono un codificatore backend. Ho provato un sacco di roba, poi l'ho ridotta per il CodePen.
Sembra che dovrei essere in grado di dire al Flexbox interno di scorrere, lasciando solo l'esterno. Devo usare la posizione: assoluta?
Non sono del tutto certo cosa stai cercando di realizzare. Ma vedo che stai usando 'height: 100%' nel tuo contenitore flex ('# chatBar'). * 100% di cosa? * È necessario fornire una cornice di riferimento quando si utilizzano altezze percentuali in CSS. Aggiungi questo al tuo codice: 'html, body {height: 100%; } ' –
Ok, buon punto. L'ho aggiunto alla codepen, ma ho ancora lo stesso problema. Quando il corpo è piccolo, l'input scorre verso il basso. Voglio che il flexbox esterno inserisca l'input * in * in basso e non scorra mai. La flexbox interna dovrebbe posizionare gli oggetti nella parte inferiore e scorrere se si rovesciano. Questo aiuta? –