Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
07.01.2003, 20:15
Megge



Ich müsste für eine Website innerhalb einer Tabelle einen Zeilenumbruch erzwingen können, sogar dann noch, wenn ein einzelnes Wort, oder besser gesagt, Zeichenstring, länger ist, als bei width angegeben.

bsp:
ich habe eine tabelle:
Quellcode:
<table width=200>
.
.
.
</table>

nun will ich nicht, dass text, der dazwischen kommt, diese 200 ankratzen, damit die tabelle IMMER 200pixel breit ist. selbst wenn z.B. einer in nem Forum das 'Wort'

Zitat:

dasisteinlangeswortmanchmalfindenesdieleutelustiglangewörterzuschreibendiekeinensinnmachen

das würde nun mein gesammtes design übern haufen werfen.

wie kann ich nun erzwingen, dass nach 200px ein zeilenumbruch erzwungen wird ?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
07.01.2003, 21:30
CN



eigentlich sollte das schon gehen wenn du nen normales space (kein   (no-break-space oso)) hin machst
hmm

aber wenn du jetzt zb ne fixed font haettest könntest du zählen wieviel chars da sind und dann nach "so und so viel" chars automatisch trennen

ausserdem würd ich mir nicht soviel mühe geben
beim thwb ist das ja auch nicht so (wobei es da sowieso auf die auflösung ankommt)

--

zum Seitenanfang zum Seitenende Profil || Suche
002
07.01.2003, 22:56
OJay



mit dem tag <pre> kannst du text genau so ausgeben lassen, wie im editor. sprich: die zeilenumbrüche aus dem ansi satz werden übernommen. ich weiß aber nicht wie das mit anderen browsern ausschaut, bei ie und ns klappts :)

--

cya dat OJay
Brainshock Interactive | Planet OJay
ICQ auth-requests, die ich nicht zuordnen kann werde ich ab sofort ignorieren!


Dieser Beitrag wurde am 07.01.2003 um 22:56 von OJay bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
08.01.2003, 06:56
Megge



ja, toll, das weiss ich auch :)
aber das ist nicht die lösung des problems ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
004
09.01.2003, 06:37
Fraghunter



Da giebt es keine Lösung. Für lange Wörter zerhaut dir dein Browser alles. Es giebt nur eine Möglichkeit: Mit den GD-Funktionen kannst du feststellen, wie breit (in Pixel) ein String in einer bestimmten Schriftart ist. Dann schaust du einfach alle Posts nach Wörtern mit ner bestimmen Zeichenlänge durch, und die überprüfst du dann mit dieser Funktion, und das, was zu lang wird, trennst du mit Leerzeichen.

geht aber halt nur mit php, mit html gibt es keine Lösung.

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche
005
09.01.2003, 14:07
Megge



ja klar, ich machs ja auch in php, in html pur könnt ich ja den text gleich so anpassen ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
006
09.01.2003, 15:55
Fraghunter



k, hast du den Lösungsweg verstanden?

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche
007
09.01.2003, 16:05
Megge



Zitat:
ja klar
;-)

--

zum Seitenanfang zum Seitenende Profil || Suche
008
09.01.2003, 16:08
Fraghunter



gut

;-)

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche
009
09.01.2003, 20:17
Morpheus



gd, fürn normalen string der im Browser ausgegeben wird, mit respekt, aber SCHWACHSINN

sorry musste ich mal so sagen...

@topic
um überlange wörter herauszufiltern zerlegst du den ganzen String mit explode und mit einem Leerzeichen als trennzeichen. danach gehst du dieses array durch und überprüfst ob das array-element nicht wirklich länger ist als du es möchtest ( via strlen() ). strings die länger sind musst du halt halbieren oder dritteln oder was weiss ich.

lahme lösung, überdenkt nochmal ob euch die sicherheit den Speeedverlust wert ist.

also nochmal für die Leute mit Verständnissproblemen:
PHP-Quellcode:<?php
1.
den [b]gesamten[/bString mit [b]explode)([/bund einem ' ' als trennzeichen in ein array "zerteilen"

2.einmal das array durchgehen und dabei überprüfen wie lang die wörter sind

3.
)Falls ein wort überlänge halbieren oder drittelvierteln....
?>
fertig

--

MFG Morpheus
www.slware.com || www.thwboard.de ||
www.comparium.de - Der clevere Preisvergleich // Coming soon

zum Seitenanfang zum Seitenende Profil || Suche
010
09.01.2003, 22:14
CN



warum nich gleich davon ausgehen dass in einer nicht-fixed-font eine gewisse anzahl an chars benötigt wird um die tabelle zu füllen
und dann den string als array behandeln und nach einer bestimmten zahl nen umbruch setzen (zb mit module gucken obs glatt durch.. meinetwegen 50 teilbar ist)

--

zum Seitenanfang zum Seitenende Profil || Suche
011
10.01.2003, 13:52
Morpheus



ja sag ich doch!

--

MFG Morpheus
www.slware.com || www.thwboard.de ||
www.comparium.de - Der clevere Preisvergleich // Coming soon

zum Seitenanfang zum Seitenende Profil || Suche
012
10.01.2003, 14:14
Fraghunter



ja, selbstverständlich ist meine Lösung nicht gerade die schnellste, aber wenn er eine schnelle Lösung will, dann ist Morpheus' Lösung auch nicht Ideal.
Das würde nämlich wesentlich besser mit einer RegExp gehen.
also
PHP-Quellcode:<?php
$leng
=30//Maximale Wortlänge
preg_replace ('!(\w{'.$leng.'})(\w+)!','\\0 \\1',$subject);
?>
das wäre die schnellste Lösung

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche
013
10.01.2003, 14:51
Andy_



Schnell - vielleicht, aber wirkungsvoll nicht unbedingt, denn er teilt den String dann "nur einmal" und springt zum nächsten token, ist damit also immer noch recht verwundbar.

Auf die Effektivität hin wäre Morphs vorschlag wohl schneller. Ich bin nicht absolut sicher ob man ein perfektes splitten alleine mit nem Regex hinbekommen würde, ich tippe eher auf zusätzliche abfragen wie strlen() usw..

--

42 Es gibt keinen Sinn des Lebens.


Dieser Beitrag wurde am 10.01.2003 um 14:54 von Andy bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
014
10.01.2003, 20:34
Fraghunter



stimmt, du hast Recht.
Aber das ist kein Problem. Mit RegExp geht alles ;-)

PHP-Quellcode:<?php
$leng
=30//Maximale Wortlänge
preg_replace ('!(\w{'.$leng.'})(?=\w+)!','\\0 ',$subject);
?>
zufrieden?

Und das ist sogar besser, weil es alle Worttrenner erkennt, also nicht nur Leerzeichen.

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de


Dieser Beitrag wurde am 10.01.2003 um 20:35 von Fraghunter bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
015
10.01.2003, 22:44
CN



ich würd lieber \S nehmen weil auch wörter vorkommen können die aus zahlen bestehen

--

zum Seitenanfang zum Seitenende Profil || Suche
016
10.01.2003, 23:04
Fraghunter



na und?
\w nimmt auch zahlen

hab das mal versucht
Quellcode:%(\w*)%

%dasgeht% %das gehtnicht% %mal.sehn% %bin08gespannt%
!dasgeht! %das gehtnicht% %mal.sehn% !bin08gespannt!

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de


Dieser Beitrag wurde am 10.01.2003 um 23:04 von Fraghunter bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
017
02.10.2004, 15:38
Megge



Bin per Zufall bei SelfHTML in der CSS Sektion drüber gestolppert, was mich sogleich an den Thread hier herinnern lies:

Die Lösung des Problems sind die min-width und max-width Definitionen.
http://de.selfhtml.org/css/eigenschaften/positionierung.htm#max_width

Quellcode:<h1 style="max-width:250px; overflow:hidden; border:solid 1px green; font-size:36pt; padding:10px">
Eine Überschrift, bei das Wort 'möglicherweise' möglicherweise zu breit für 250px ist</h1>
Vielleicht kann das jemand mal wieder gebrauchen :)

--

zum Seitenanfang zum Seitenende Profil || Suche
018
02.10.2004, 21:19
K-Putt



Min-Width und Max-Width wären ansich 2 wunderbare Eigenschaften, die man an vielen Stellen einer Seite brauchen könnte.
Das ganze hat nur einen Haken: Der !$% IE kann nichts damit anfangen, und so leid es mir tut, darauf muss man meistens leider Rücksicht nehmen.
Gibt zwar meines wissens nach wie so meist nen üblen Hack für den IE, aber auch der funktioniert nicht garantiert..

--

Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database

zum Seitenanfang zum Seitenende Profil || Suche
019
10.10.2004, 19:08
Alcapone



Der Post war umsonst, sorry, habe zur sicherheit mal nachgeprüft und das hat ned funktioniert was ich geschildert habe.

--

"Everything, that can go wrong, will go wrong" Murphy's Law


Dieser Beitrag wurde am 10.10.2004 um 19:17 von Alcapone bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche