DJ_Cyberdance
Here to stay
|
Ich hab ein Vorschaufenster, in dem von einem Text nur eine Zeile angezeigt werden soll - dann soll der Text abgebrochen werden, ein ... angehängt und ein Link "mehr..." angehängt werden.
Meine Frage, wie krieg ich nun nur die erste Zeile? Die ist in px immer gleich breit, nämlich 500px. Ich vermute, PHP-seitig kann ich da nur schätzen, PHP weiß schließlich nicht, welche Schriftart der Client tatsächlich einsetzt. Sind da irgendwelche Ansätze bekannt, wie man die Textlänge am besten schätzt? Oder läßt sie sich mit Javascript gar genauer bestimmen? Falls ja, wie sieht so ein Javascript aus, ich hab von JS außer history.back() udgl. ziemlich genau gar keine Ahnung...
Länge in Zeichen bringts ja auch nicht, da hängt die effektive Länge ja wieder vom Text ab.
|
dosen
Here to stay
|
Länge in Zeichen bringts ja auch nicht, da hängt die effektive Länge ja wieder vom Text ab. text kann man auch nicht in pixel messen, deswegen wirst du es wohl mit zeichen machen müssen. schau halt wieviele zeichen du maximal in 500px bekommst und benutze dann diese funktion: http://www.webmaster-resource.de/tr...hen-kuerzen.phpdie habe ich übrigens in 10 sekunden ergoogelt und war der erste treffer
|
DJ_Cyberdance
Here to stay
|
http://www.webmaster-resource.de/tr...hen-kuerzen.php
die habe ich übrigens in 10 sekunden ergoogelt und war der erste treffer Ja, die ist mir auch untergekommen, beantwortet meine Frage aber nicht. Wenn ich mich selbst zitieren darf: Länge in Zeichen bringts ja auch nicht, da hängt die effektive Länge ja wieder vom Text ab. Ich such was, mit dem ich wirklich die Breite bekomm - in Pixel. Ich weiß, daß man Text nicht direkt in Pixel messen kann, aber ich bilde mir mal ein irgendwo eine Funktion dafür gesehen zu haben, die unter Angabe der Schriftart die Breite in px zurückgegeben hat. Muß aber wohl clientseitig passieren, da PHP keine Ahnung von der tatsächlich verwendeten Schriftart hat. Aber ich wiederhole mich...
|
dosen
Here to stay
|
ich verstehe das problem immer noch nicht... ahagahdhababdhabahde
das sind 20 zeichen ahagahdhababdhabahdeahagahdhababdhabahde
das sind 40 zeichen wenn du jetzt probiert wieviele zeichen in deine tabelle reingehen und den wert in die funktion einträgst hast du keine probleme mehr - der restliche text kommt weg und angefangene wörter werden einfach gestanzt. für was du da pixel brauchst verstehe ich immer nochnicht.
|
DJ_Cyberdance
Here to stay
|
wenn du jetzt probiert wieviele zeichen in deine tabelle reingehen und den wert in die funktion einträgst hast du keine probleme mehr - der restliche text kommt weg und angefangene wörter werden einfach gestanzt. für was du da pixel brauchst verstehe ich immer nochnicht. Das sind 20 Zeichen: iiiiiiiiiiiiiiiiiiii Das sind auch 20 Zeichen: MMMMMMMMMMMMMMMMMMMM Welcher Text ist effektiv länger?
|
Luzandro
OC Addicted
|
Öffnen mit msc.exe ?
vllt. hilft dir ja das: <html>
<head>
</head>
<body onload="alert(document.getElementById('test').clientWidth)">
<span id="test">HURZ!</span>
</body>
</html>
|
dosen
Here to stay
|
Das sind 20 Zeichen: iiiiiiiiiiiiiiiiiiii
Das sind auch 20 Zeichen: MMMMMMMMMMMMMMMMMMMM
Welcher Text ist effektiv länger? das ist schon klar, aber hast du solche Texte? hoffe nicht. reche halt mit 5 Grossbuchstaben, mehr brauchst du nicht -> sollte doch lösbar sein
|
DJ_Cyberdance
Here to stay
|
vllt. hilft dir ja das: Hm... das is mal ein guter Ansatz. Wenn ich mit JS auf den Inhalt von dem "id" zugreifen kann, dann müßt ich dort - falls zu lang, solang Wörter wegnehmen, bis die Länge paßt... oder umgekehrt... @Dosensteck: Ich weiß nicht, welche Texte ich hab - die kommen aus einer Datenbank und die wird nicht von mir gefüttert. Aber ich hab gesehen, daß die Texte auch Worte in GROSSBUCHSTABEN erhalten, um irgendwas hervorzuheben. Gefällt mir nicht, mag ich nicht, ist aber nicht in meinem Einflußbereich. Aber genau deswegen muß ich mich auch um solche Fälle kümmern.
|
Luzandro
OC Addicted
|
Hm... das is mal ein guter Ansatz. Wenn ich mit JS auf den Inhalt von dem "id" zugreifen kann, dann müßt ich dort - falls zu lang, solang Wörter wegnehmen, bis die Länge paßt... oder umgekehrt... naja, du weißt ja die Anzahl der Zeichen und kennst die Breite, also kannst du dir wieder eine Durchschnittsbreite ausrechnen - im Grunde ist das aber nicht wirklich soviel anders, als wenn du schon vorher einen sinnvollen wert annimmst (v.a. wenn du für den font/größe styles verwendest und diese nicht vom user overruled werden) - dagegen muss mit dieser methode javascript aktiviert sein und es wird überall der komplette text übermittelt, selbst wenn du nur die erste zeile brauchst...
|
DJ_Cyberdance
Here to stay
|
dagegen muss mit dieser methode javascript aktiviert sein und es wird überall der komplette text übermittelt, selbst wenn du nur die erste zeile brauchst... Naja, nicht unbedingt der ganze Text, wenn ich von einer gewissen möglichen Maximallänge ausgehe. Aber andere Frage: Geht das vllt. damit, was man gemeinhin als 'Ajax' bezeichnet? Hab mir das noch nie angesehen, aber das sollte doch genau dafür gut sein oder bin ich da auf dem Holzweg?
|
Luzandro
OC Addicted
|
Naja, nicht unbedingt der ganze Text, wenn ich von einer gewissen möglichen Maximallänge ausgehe. Aber andere Frage: Geht das vllt. damit, was man gemeinhin als 'Ajax' bezeichnet? Hab mir das noch nie angesehen, aber das sollte doch genau dafür gut sein oder bin ich da auf dem Holzweg? k.a., mit ajax hab ich keine erfahrung aber ich frag mich immer noch, warum du das eigentl. so komisch pixelgenau haben willst (was ja eigentl. auch nicht geht, aber die varianz ist halt kleiner..). ich mein, angenommen ich schau mir deine seite an, wo alle zeilen wunderbar gleich lang sind, genau so, wie du das willst - dann frag ich mich wahrscheinlich, wer auf die komische idee kommt, einen satz mitten in einem wort statt zw. zwei wörtern abzubrechen...
|
kleinerChemiker
Here to stay
|
er wird eine box haben in die der text reinpassen muß, vermute ich mal
|