Archivlink: javarea.de Forum > (X)HTML & CSS (allgemein) > CSS-Alternative zu Wordwrap (PHP) ???
Vollständigen Link anzeigen: javarea.de Forum > (X)HTML & CSS (allgemein) > CSS-Alternative zu Wordwrap (PHP) ???

Pages: [1] 2 ... nächste » ... Letzte »

geschrieben von zippy am 08.04.2006 - 14:29
Gibt es eine CSS-Alternative zu wordwrap?

Ich suche derartiges. Es soll überlange Worte beinhart abreißen, wenn sie den Container sprengen, etwa wie overflow:hidden, aber eben auf die nächste Zeile umgebrochen.

Begründung: Ich mag relative Schriftgrößenangaben. Wenn ich aber die Worte mittels wordwrap() zerreiße, bräuchte ich je nach Schriftanzeige im Browser verschiedene Wortlängen-Parameter, um die Zeilen auszufüllen.

Beispiel: Stelle ich in ner engen Spalte den Wordwrap auf 36, dann wird die Spalte bei Einstellung auf "Anzeige:größer" gedehnt, stelle ich die Spalte (im CSS) auf overflow:hidden, dann wird der Wortrest nicht angezeigt.

geschrieben von Micha am 08.04.2006 - 14:42
Hallo,

Deine Überlegung ist falsch! Du musst neben der Schriftgröße auch die Zelle, in der sich Dein Text befindet, mit wachsen lassen - sonst hat das keinen Sinn.

Zu Deiner eigentlichen Frage, nein, so etwas gibts nicht.

Micha

geschrieben von zippy am 08.04.2006 - 22:15
Ich will die Zelle aber nicht mitwachsen lassen. Wenn ich die Zelle wachsen lasse, sollte auch der Monitor wachsen, und das tun diese blöden Dinger einfach nicht...

geschrieben von René am 09.04.2006 - 09:45
Zitat
 Original geschrieben von zippy am 08.04.2006 - 22:15

Wenn ich die Zelle wachsen lasse, sollte auch der Monitor wachsen, und das tun diese blöden Dinger einfach nicht...

Schade eigendlich


geschrieben von Micha am 09.04.2006 - 11:35
Hallo,

@ René *lol*

Zum Thema, dann willst Du auch keine relative Schriftgröße haben. Wer das eine will, muss das andere mögen.

Gruß Micha

geschrieben von zippy am 09.04.2006 - 11:47
Ich habs jetzt probiert mit
HTML-Quelltext
1: 
style="monitor-size:auto;"

Hmmm, geht nicht, mein Monitor kennt diese CSS-Version noch nicht...
Vielleicht sollte ich mal versuchen:
HTML-Quelltext
1: 
style="monitor-size:autobus;"



@Micha:
Vor allem geht es um Postings von Userinnen und Usern. Die sollen ja - unabhängig von der Spaltenbreite - die ganze Spalte ausfüllen. Wordwrap ist da ne schlechte Lösung.

Ich will aber auch nicht dazu übergehen, die Schriftgröße fix einzustellen. Als Alternative bleibt eigentlich nur "overflow:hidden".

Das Problem tritt gehäuft bei langen urls auf.

Noch was: Nicht ich ändere die Schriftgröße, sondern die BesucherInnen. Darauf hab ich ja keinen Einfluss. Wenn also ein Wordwrap mit 72 Zeichen die Zelle bei einer Schriftgröße von 0.9em gerade ausfüllt (mit breiten Buchstaben), dann wird die Zelle gesprengt, wenn jemand seinen IE auf "sehr groß" einstellt. Es ist außerdem mE gar nicht immer möglich, alle anderen Größenangaben (auch Positionen von Layers) relativ anzugeben, oder? Mal ganz abgesehen von der mangelnden "monitor-size"-Unterstützung....

geschrieben von Micha am 09.04.2006 - 11:54
Hallo,

da alles an Deinem Layout bereits fix zu sein scheint, erscheint es afaik sinnfrei, der Schriftgröße einen flexiblen Wert zu zuweisen.

Ich denke aber trotzdem, das selbst bei einer festen Schriftgröße das Problem auftreten kann und wird. Schau Dir doch hier im Forum mal an, was mit einer langen URI passiert:

http://www.google.de/search?hl=de&a....%3Dlang_de

Fällt Dir was auf?

Micha

zu Deinem NACHTRAG: Bis zu einem gewissen Grad habe ich das hier versucht

geschrieben von zippy am 09.04.2006 - 12:53
Ich hab keine Urlumwandlungen in meinem CMS. Derzeit nicht. Außerdem geht es eben nich nur um Urls, sondern generell um lange Worte. Ich würde dieses Problem gerne an die styles auslagern, und nicht mit php lösen. Ein Zwangsumbruch sozusagen.

Mit "overflow:hidden" geht es eh halbwegs, weil man das Wort (die url) noch immer kopieren kann, aber es sieht halt schirch aus...

geschrieben von Micha am 09.04.2006 - 13:41
Hallo,

wie gesagt, Du greifst das Problem an der falschen Stelle an. HTML fließt von sich aus. Du bist derjenige, der dies unterbindet. Machst Du es, musst Du mit den geschilderten Konsequenzen leben unterlässt Du es, hast Du das Problem nicht.

Wir können noch Stunden drüber reden, es wird sich keine Lösung auftun, wenn Du nicht versuchst das Grundlegendeproblem zu beseitigen.

Noch als Nachtrag: Du vergleichst PHP mit einer Funktion ständig mit CSS, das ist so nciht möglich. Eine Programmiersprache hat keine Gemeinsamkeiten mit etwas, was lediglich der Darstellung dient. Insofern kann es _gar nichts_ geben, was das eine kann und das andere nicht, da es zwei Paar Schuhe sind.

Micha

geschrieben von zippy am 09.04.2006 - 13:54
Dass es sich um verschiedene Ebenen handelt, war mir schon klar. Es handelt sich aber um ein Darstellungsproblem, das ich (folglich) gerne mit CSS gelöst hätte.

Im php hat das mE nichts verloren, noch dazu, wo man je nach Browsereinstellung verschiedene Parameter fürs wordwrap bräuchte. Bisher hab ich aber nichts gefunden, als in CSS "overflow:hidden" und in php "wordwrap([])". Ersteres schneidet den Text ab, statt ihn mitten im Wort umzubrechen, wie ich es will, zweiteres ist - wie Du andeutest - die falsche Ebene, dieses Problem zu lösen und überdies zu starr, weil ich ja die Schriftgrößen-Einstellungen des Clients kennen müsste, um die passenden Parameter an die Funktion zu übergeben.

P.S.: Das Problem ist weit verbreitet und verschiedene Portale handhaben es verschieden. Muss nur mal jemand ein Wort wie "Donaudampfschifffahrtsgesellschaftskapitänsmützenknopfpoliturdosendeckelgewindeganghöhe" posten, und schon ist (auch Dein!) Design gesprengt, und man benötigt seitliche Scrollbalken, wenn auf große Schrift eingestellt.

Im ORF schneiden sie diese Worte ab, im derstandard.at legen sie die Postings auf höhere Ebenen, die dann über die anderen reichen. Wordwrap drängt die Postings sehr schmal zusammenn, wenn die Schrift auf klein gestellt ist.


geschrieben von Micha am 09.04.2006 - 14:12
Hallo,

wie gesagt, das Problem liegt beim Konzept, welches Du verwendest. Wenn etwas 100px Breit sein soll, dann ist es 100 Pixel breit. Wenn Du dann in dieses Element etwas schreibst, mit 12px, dann ist dies im Browser 12 Pixel groß*. Wird das, was Du schreibst, zu groß bzw zu lang, dann werden die Grenzen erweitert. Versuche in ein Behälter, der 1 Liter Wasser fassen kann, zwei Liter rein zu füllen, wenn Du das schaffst, hast Du auch die Lösung für Dein Problem.

Micha


[*] ich kenne nur den IE, der diese Angabe versteht und auch beim vergößern des Schriftgrades eine solche Einheit nicht antastet. Alle anderen Browser lassen trotz fester Größe Gott sei Dank eine Veränderung zu. Auf machen Seiten kann man mit FF kaum was erkennen (Gerade bei Quellcodeauszügen) und da schätze ich die Skalierbarkeit...

geschrieben von zippy am 09.04.2006 - 14:47
Naja, aber Container kann ich bloß mit Pixeln oder Prozenten dimensionieren, Schriften aber auch mit "em".

Wie dem auch sei: Es bleibt das Problem, dass die Zellenbreite irgendwann den Monitor sprengt, oder die Fenstergröße. Mal ganz abgesehen davon, dass böswillige BesucherInnen jederzeit 300 w als Wort posten könnten. Dann käme auch Deine Homepage etwas schief daher...

geschrieben von Micha am 09.04.2006 - 15:20
Hallo,

wie kommst Du nur darauf, das Du für eine Box em nicht als Einheit nutzen darfst?

Der Beweis:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
h2 {
				text-align:left;
				font-size: 0.8em;
				background:#112A5D;
				margin-top: 15px;
				margin-bottom: 0;
				padding: 7px;
				color: #BFBFC1;
				width: 17em;
			}


ist die Formatierung einer h2- Überschrift auf http://leagueeditor.derletztekick.de/

Auf der Startseite somit das "Herzlich Willkommen..." Die Grenze erkennst Du am dunkelblau - nun skalier mal ein wenig, gehts?

Zitat
 dass böswillige BesucherInnen jederzeit 300 w als Wort posten könnten. Dann käme auch Deine Homepage etwas schief daher
Nö, das könnte dieser User bei mir nur im Feedbackformular machen und dort regelt wordwrap alles weitere für mich. Er wäre somit der einzige der es sehen würde und es bedarf schon einen Screenshot, um es anderen zu zeigen ;)

Liebe Grüße Micha

geschrieben von zippy am 09.04.2006 - 15:52
OK, hatte ich vergessen, aber man kann ...

Jedenfalls ist das Grundproblem nicht gelöst: Überlange Worte sprengen den Container, oder werden bei kleinster Schriftwahl zu schmal dargestellt. Wordwrap löst das nicht, weil es ja auf das Verhältnis Schriftgröße<>Container ankommt.

Helfen würde mein Vorschlag zur Monitorvergrößerung per CSS, aber das haben die schlaffen TechnikerInnen nicht drauf, scheint mir.

Es kann ja nicht so schwer sein, nen brutalen Wortumbruch in CSS der nächsten Generation einzubinden, etwa mit "text-overflow:cutbrutal"..

geschrieben von Micha am 09.04.2006 - 16:06
Zitat
 Original geschrieben von zippy am 09.04.2006 - 15:52
Jedenfalls ist das Grundproblem nicht gelöst:


Zitat
 Original geschrieben von derletztekick am 08.04.2006 - 14:42
Hallo,


Zitat
 Original geschrieben von derletztekick am 08.04.2006 - 14:42
Deine Überlegung ist falsch!


Zitat
 Original geschrieben von derletztekick am 09.04.2006 - 13:41
wie gesagt, Du greifst das Problem an der falschen Stelle an. HTML fließt von sich aus.


Zitat
 Original geschrieben von derletztekick am 09.04.2006 - 14:12
wie gesagt, das Problem liegt beim Konzept, welches Du verwendest. Wenn etwas 100px Breit sein soll, dann ist es 100 Pixel breit.


Fällt Dir was auf?

Zitat
 Original geschrieben von derletztekick am 09.04.2006 - 14:12
Es kann ja nicht so schwer sein, nen brutalen Wortumbruch

Es besteht afaik kein Grund für eine solche Eigennschaft.

Schöne Grüße Micha


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.