Zeilenumbruch in Tabelle erzwingen |
tobias
Foren-Team Threadstarter
Beiträge: 708 |
Ist es möglich, einen Zeilenumbruch in einer Tabelle zu erzwingen, wenn sich ein überlanges Wort in dieser befindet?
Beispiel:
einganzlangeswortdasnichtumbruchenwird
|
In der Regel umbricht der Webbrowser Wörter nur, wenn sich Leerzeichen dazwischen befinden. Andernfalls wird - wie im Beispiel oben - die Breite der Tabelle vergrößert. Kann man das verhindern?
|
 Profil
Website
Editieren
Zitieren
|
stalkerX
Mausakrobat
Beiträge: 183 |
ich wüsste jetzt nur eine php-lösung, mit html geht das meines wissens nach nicht...
---
.: Web 2.0 Entwickler & seine Notizen :.
|
 Profil
Website
Editieren
Zitieren
|
klaus
Pixelschubser
Beiträge: 4 |
mit html allein geht das nicht.
aber warum nicht das wort an geeigneter stelle trennen?
oder wird der inhalt dynamisch erzeugt?
oder verstehe ich dein problem nicht?
|
 Profil
Editieren
Zitieren
|
tobias
Foren-Team Threadstarter
Beiträge: 708 |
Der Begriff "Wort" ist nicht unbedingt gut gewählt. Stell dir stattdessen so eine URL vor:
http://www.eineseitexyzdieganzlangist/ja/ganz/lang/index.html
Oder stell dir vor, es soll schlecht formatierter HTML-Code ausgegeben werden:
" dsfsdfsdfsdf..."
Der Inhalt wird dynamisch erzeugt. Sicher, per PHP ließe sich das mit etwas Aufwand trennen, aber eine einfachere Lösung wäre nicht schlecht.
_________________
Gehe zu Seite ( 1 | 2 | 3 | 4 | 5 )
|
 Profil
Website
Editieren
Zitieren
|
HG
Posting-Schinder
Beiträge: 520 |
Ich glaube, daß es mit php einfacher ist, das zu trennen. Bei einer HTML / Javascript-Lösung hast du das Problem, daß vieles sehr speziell gelöst werden müsste. So könntest du z.B. einen Bereich mit einer festen Breite definieren, und alles, was drüber rausfließen würde wird dann nur per Scrollbar verfügbar.
Du könntest natürlich auch mit Javascript durch alle angezeigten Buchstaben gehen, und nach 60 Zeichen hintereinander ein Leerzeichen einfügen. Aber ich glaube, daß der Aufwand zu groß wäre. Mittels einer einfachen HTML-Eigenschaft geht das nicht. Bestenfalls in Textfeldern. Aber da hast du wieder das Problem, daß du dann keine Links oder Formatierungen in den Text einfügen kannst...
Mit php ist es daher einfacher, vor allem, wenn der Inhalt aus einer DB oder einer Datei kommt. Würd ich mal sagen.
---
www.kuminatano.de
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
CHX3
Pixelschubser
Beiträge: 2 |
1:
2:
3:
4:
5:
6:
7: |
Schrecklichlangeswortdasmannichtrennenkannoderwasmeintihr?
|
|
Das dürfte ohne Bindestrich und Silbenerkennung zumindest zu lange Wörter trennen.
Diese Nachricht wurde geändert von: CHX3 |
 Profil
E-Mail
Editieren
Zitieren
|
Tobi W.
Mausakrobat
Beiträge: 182 |
ENDLICH! Nach 2,5 Jahren haben wir einen Lösung für das Problem gefunden. Danke
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
HoRnominatoR
Mausakrobat
Beiträge: 161 |
und dann auch noch eine, die es offiziel nicht gibt und nur von 30% der grossen browser unterstuetzt wird - und das ist zu allem uebel auch noch der IE.
---
get OPERA for free
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
CHX3
Pixelschubser
Beiträge: 2 |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23: | function text_restrict_wordsize($str, $size, $fontsize = 7, $fontfile = 'verdana.ttf') {
$size = max($size, 10);
$fontpath = $_SERVER['DOCUMENT_ROOT'] . '/source/fonts/' . $fontfile;
$strings = explode(' ', $str);
foreach ($strings as $key => $string ) {
$dimensions = imagettfbbox($fontsize, 0, $fontpath, $string);
$width = $dimensions[4]-$dimensions[6];
if ($width > $size) {
while ($width > $size) {
$string = substr($string, 0, strlen($string)-1);
$dimensions = imagettfbbox($fontsize, 0, $fontpath, $string . '-');
$width = $dimensions[4]-$dimensions[6];
}
$strings[$key] = $string . '- ' . text_restrict_wordsize(substr($strings[$key], strlen($string), strlen($strings[$key]) - strlen($string) - 1), $size, $fontsize, $fontfile);
}
}
return implode(' ', $strings);
} |
Mit PHP kann man das so lösen. Diese Funktion erkennt zu lange Wörter (in Pixeln!) und trennt diese mit einem Bindestrich ab. Hab ich für meine Homepage geproggt.
Achtung: Diese Funktion benötigt die Angabe der Schriftart und Schriftgröße, da aber die meisten Server keine Schriftarten bieten, muss man diese selbst auf den Server kopieren. Deshalb steht am Anfang der Funktion $fontfile = 'verdana.ttf', da ich bei meiner Homepage diese Schriftart verwende. Und In der Zeile $fontpath = $_SERVER['DOCUMENT_ROOT'] . '/source/fonts/' . $fontfile; musst du noch
'/source/fonts/' durch den Pfad ersetzen, in dem du deine Fonts auf dem Server speicherst.
|
 Profil
E-Mail
Editieren
Zitieren
|