Ich habe ein Chat-Fenster mit HTML, CSS & JS gemacht. Ich möchte die Nachricht von unten nach oben positionieren. Beispiel: erste Nachricht div am unteren, zweite Nachricht div auf der ersten und so weiter. Ist es möglich?Ist es möglich, ein div über CSS von einem anderen zu positionieren?
Antwort
Ich kann mir keine reine CSS-Lösung vorstellen. Aber Mit jQuery, wenn Sie bereits diese Bibliothek für Ihr Projekt haben, können Sie diese etwas schreiben könnte:
$(':button').click(function() {
var message = $('input[type=text]').val();
$('#chat').prepend('<div class="line">'+message);
});
Demo:http://jsfiddle.net/Vbd67/1/
** I änderte sich die append
zu prepend
nach dem Kommentar
Ihre Nachrichten sind von oben nach unten. Die Frage war für die Unterseite. –
@guymografi danke, meine Schuld – Sotiris
Sie sollten eine Kombination von display:table-cell
und vertical-align:bottom
verwenden. Ich benutze Sotiris 'Geige und korrigiere CSS.
Die HTML ist
<div style="display:table; height:200px;">
<div style="display:table-row">
<div id="chat" style="width:400px; border:1px solid black;display:table-cell; vertical-align:bottom">
</div>
</div>
</div>
<input type="text"><input type="button" value="post">
Und dies ist der JavaScript-Code
$(':button').click(function() {
var message = $('input[type=text]').val();
$('#chat').append($('<div/>').text(message));
});
Bitte lassen Sie mich wissen, ob es ein Problem gibt.
Dies ist der fiddle
ich für eine bessere Lösung gehalten Suche, weil Tabellenlayout mir immer verdächtig ist, aber ich fand css-tricks article darüber, und sie tun das gleiche wie ich .. tun, so denke ich, ist diese Lösung das richtige.
ADDING - halten scroll nach unten Code
Da neue Nachrichten auf dem Boden kommen, müssen wir blättern nach unten zu halten. Ich habe den Fiddle Link aktualisiert
Sie können dies mit jQuery wie;
var first = $('div > div:first-child');
first.appendTo(first.parent());
mit mehreren Elementen umgehen, können Sie dies tun:
$('div > div').each(function() {
$(this).prependTo(this.parentNode);
});
Here ist ein funktionierendes Live-Demo.
Ich weiß, dass dies auf Ihre Frage keine Antwort ist, vielmehr ist dies eine bessere Option, die Sie im Chat-Fenster Implementierung in Betracht ziehen sollten.
Neueste Kommentar sollte auf der Unterseite sein, das ist, wie die meisten grundlegenden Chat-Fenster arbeiten.
Das nächste, was können Sie diese alle mit CSS tun: , weil eine solche Konstruktion entweder Reihen Verwendung von Tabelle erfordert oder Listenelemente Offensichtlich haben Sie Javascript verwenden für Ajax verwenden, so dass Sie asynchron Benutzer holen kann Aufzeichnungen wie Nachrichten und profile pic etc
CSS:
<style type="text/css">
table#chat_window {
}
tr#message_row {
}
td#profile_pic {
}
td#message {
}
</style>
HTML-Struktur:
<table id="chat_window">
<tr id="message_row">
<td id="profile_pic"></td>
<td id="message"></td>
</tr>
</table>
ODER DAS surfen
<ul id="chat_window">
<li id="message_row">
<div id="profile_pic"></div>
<div id="message"></div>
</li>
</ul>
Jetzt müssen Sie nur noch mit Hilfe von Javascript: Ajax-Werte holen und ein Kind hinzufügen:
- Wenn Sie Tabellen-basierte Chat-Windo verwenden w, dann müssen Sie die Tabellen-ID mithilfe von JavaScript abrufen und das Zeilenelement
<tr>
pro Wert/Nachricht, die Sie abrufen, hinzufügen. - Wenn Sie ein listenbasiertes Chatfenster verwenden, müssen Sie die Listen-ID mithilfe von JavaScript abrufen und das Listenelement
<li>
pro Wert/Nachricht, die Sie abrufen, hinzufügen.
Es tut mir leid, wenn es irgendwelche Fehler, die ich weniger Zeit haben.
- 1. Positionieren Sie ein div relativ zu einem anderen div, das nicht sein Elternteil ist, mit CSS
- 2. Positionieren einer Div unter einem anderen DIV
- 3. Positionieren Sie ein Element relativ zu einem anderen in CSS
- 4. Wie kann ich ein Div immer über einem anderen div positionieren? (nicht überlagernd!)
- 5. Positionieren von Text über eine Leinwand in einem responsiven div
- 6. Ist es möglich, Bilder so zu positionieren (möglicherweise ohne Float)?
- 7. Ein Element über einem anderen halten
- 8. Ist es möglich, ein div (und seine Kinder) mit einem anderen Stylesheet zu stylen?
- 9. Platzieren Sie ein Div über einem anderen Div
- 10. Ist es möglich, ein Jquery Draggable-Objekt unter einem anderen div zu haben
- 11. HTML/CSS Fluid Grid: Wie div zu einem anderen div
- 12. Diagrammsteuerung ist es möglich, die horizontale Bildlaufleiste zu positionieren?
- 13. ist es möglich, ein Modul von einem Thema zu einem anderen Thema in Prestashop zu installieren?
- 14. Ist es möglich, ein IMG-Tag und nicht ein Hintergrundbild in einem div zu parallaxen?
- 15. DIV über einem anderen DIV automatisch
- 16. wie divs innerhalb eines anderen div zu positionieren
- 17. Float ein DIV auf einem anderen DIV
- 18. Hinzufügen div über einem anderen div
- 19. Ist es möglich, ein Latex-Dokument über node.js zu kompilieren?
- 20. Ist es möglich, struct zu einem anderen zu übertragen?
- 21. Ist es möglich, einem Element basierend auf einem anderen Element Stil/CSS zuzuordnen?
- 22. Ist es möglich, ein PNG mit JS/CSS zu invertieren?
- 23. Es ist nicht möglich, Daten von einem Controller zu einem anderen zu bewegen und angularjs
- 24. So positionieren Sie ein Element absolut von der Mitte - CSS
- 25. Wie stelle ich ein DIV so ein, dass es in einem anderen spezifischen DIV absolut ist?
- 26. Wie div von einem Frame über Frame anderen zu machen?
- 27. CSS: Ist es möglich, ein Div 100% Höhe, weniger einen oberen und unteren Rand zu bekommen?
- 28. Ist es möglich, einer CSS-Klasse Priorität zu geben?
- 29. CSS - Überlagert ein Bild über dem anderen
- 30. Ist es möglich, den Canvas, der automatisch von three.js generiert wird, zu stylen/zu positionieren?
Was haben Sie versucht? – vittore
ja es ist, aber könntest du es bitte auf js Geige aktualisieren oder sag mir was hast du probiert? – Chandrakant
Ich kenne einen Weg - mit nur CSS - aber es scheint mir, es muss einen besseren Weg geben. Ich werde eine Geige machen und es hier posten. Gib mir ein paar Minuten. –