JavaScript ... an das Ende eines Textes, wenn der Inhalt abgeschnitten wird

CleFe

Cadet 4th Year
Registriert
Feb. 2007
Beiträge
87
Hallo Leute,

Ich generiere eine Tabelle mit festen Spaltenbreiten. Innerhalb einer Zelle soll niemals ein Umbruch stattfinden, sondern der Text wird am Ende der Zelle abgeschnitten - die Zellen haben eine feste Höhe und die CSS-Eigenschaft overflow:hidden.

Mein Problem ist, dass häufig nicht zu erkennen ist, dass in einer Zelle etwas abgeschnitten wurde. Das würde ich gerne so auffangen: Es wird automatisch ein ... ans Ende der Zelle gesetzt, wenn der Text abgeschnitten wurde.

Gibt es irgendein overflow-Event oder sonstige Ansätze?

Beste Grüße
 
Nicht das ich wüsste. Würde außerdem sowieso nicht funktionieren wenn du per overflow abschneidest, denn wie willst du dann hinten die 3 Punkte hinzufügen?

Wieso beschränkst du die Länge nicht gleich bei der Ausgabe?
 
Dann müsste ich doch für jeden Text erst die Länge berechnen - das würde zu viel Zeit in Anspruch nehmen. Ich hoffe, ich habe dich richtig verstanden.
 
Also lange kann es nicht dauern bis so eine Länge berechnet wurde, außer du musst das selbst erledigen. :>
 
möglichkeit 1: wort für wort reinsetzen und breite des inline-elements nach jedem wort checken, bei überschreitung ein wort zurück und punkte dranhängen

möglichkeit 2 (wesentlich performanter): nach x buchstaben/wörtern automatisch abschneiden und punkte dranhängen
 
ownagi schrieb:
möglichkeit 1: wort für wort reinsetzen und breite des inline-elements nach jedem wort checken, bei überschreitung ein wort zurück und punkte dranhängen

möglichkeit 2 (wesentlich performanter): nach x buchstaben/wörtern automatisch abschneiden und punkte dranhängen

möglichkeit 1: also per JavaScript, nach dem laden der Seite, jede Zelle überprüfen

möglichkeit 2: Da verschenkt man zu viel Platz, weil die Schrift unproportional ist.
Angenommen ich sage:
Schneide nach drei Buchstaben ab...
MMM...
iii...

t R I A S schrieb:
Also lange kann es nicht dauern bis so eine Länge berechnet wurde, außer du musst das selbst erledigen. :>

Es nimmt eben doch Zeit in Anspruch. Man müsste sich ein Array anlegen, dass die Breite für jedes Zeichen speichert (abhängig von der Schriftgröße). Dann müsste man für jeden Text, die Breiten der Buchstaben addieren; und diesen Wert dann mit der Zellenbreite abgleichen.
Oder wie würdest du es machen?
 
Zurück
Oben