Für ein Projekt, an dem ich gerade arbeite, muss ich "divs" vor dem Textinhalt einer Textfläche anzeigen können:
Zuerst dachte ich, ich könnte einfach die divs mit absoluter Positionierung und Z-Index platzieren, aber das würde bedeuten, dass man den Text "pushen" müsste und sicherstellen sollte, dass der Benutzer diese ersten Leerzeichen nicht löschen kann, weder mit Rücktaste noch Strg + c noch ctrl + x noch löschen ... Es sah kompliziert aus, jeden möglichen Weg zu bekommen.
Nun versuche ich ein "div" zu verwenden, das so aussieht, als wäre es ein Textfeld, das ein editierbares "span" enthält, das den folgenden Text enthält:
Das funktioniert im Moment, aber es ist nicht perfekt, insbesondere in Bezug auf: Fokus (Klicken Sie irgendwo auf das äußere div sollte den Cursor in der Textspanne *) anzeigen, und es scheint zu brechen, wenn ich die Textspanne entleere.
Irgendwelche Ideen, wie Sie das beheben können? Ich bin offen für Vorschläge, auch wenn ich die Struktur meiner gefälschten Textarea ändern muss.
Es sollte in allen wichtigen (aktuellen) Browsern funktionieren und kann jQuery verwenden.
$('#outerDiv').bind('click', $('#outerDiv span.text').focus());
scheint in Chrome zu funktionieren, aber nicht in Firefox. Was ich tun würde, ist folgendes:
float
s links und inline-block
oder float
ed untergeordnete Elemente enthält. contenteditable
ist. Endergebnis:
%Vor%Wenn Sie viele Tags haben, werden sie in die nächste Zeile eingefügt. Text im editierbaren Element wird auch um die Tags gelegt.
Wenn Sie auf die Tags klicken, wird der Fokus des bearbeitbaren Elements nicht angezeigt, aber Sie können das mit JavaScript beheben.
Hier ist ein Beispiel, das ich aufgepeppt habe . Funktioniert in Safari / Chrome / Firefox. Internet Explorer nicht getestet, aber es sollte gut funktionieren.
Tags und Links javascript html jquery css