# [Problemlösungssuche] Zu breiter Text (nowrap) zerreißt Layout



## sam (29. April 2003)

guten tag meine schäfchen  

hab da ein kleines problem, an dem ich 
jetzt schon tagelang grübel...

nehmen wir mal an ich hätte ein gästebuch 
in dem man code wie hier im forum per 
[ code] oder [ php] posten kann.
dieser code darf keine zeilenumbrücke an 
den falschen stellen haben, deshalb 
_nowrap_ bzw. _white-space:nowrap_...

nun haut mir ein zu langer code mein div 
und damit meine gesamte tabellenkonstruktion 
auseinander...
da denk ich mir doch: hah! _overflow:auto_ 
könnte mir helfen. leider ist dem nicht so 
mozilla kann das einwandfrei, aber der 
ie machts irgendwie grundsätzlich 
falsch (zeigt eine zeile zu wenig an... 
is shit, wenns nur eine zeile is )
und das reicht schon für ne suche 
nach ner neuen lösung...

wie würdet ihr so ein problem angehen? 
eine textarea kommt leider nicht in frage, 
da der code ein highlighting spendiert 
bekommen hat.

mfg
sam


----------



## Fabian H (29. April 2003)

Suchen -> http://tutorials.de/showthread.php?threadid=20162&highlight=*wrap*


----------



## Christoph (29. April 2003)

hihi, kennen wir doch das Problemvom zukünftigen V4 Board


----------



## Fabian H (29. April 2003)

Vielleicht gefällt es dir besser, wenn du zu meiner Lösung zusätzlich noch Zeilennumern hinzufügst. (Der Übersicht halber)

@hochi: Ich glaub statistisch gesehen bust du der, der am meisten von der V4 spricht


----------



## sam (29. April 2003)

> _Original geschrieben von Nuinmundo _
> *Suchen -> http://tutorials.de/showthread.php?threadid=20162&highlight=*wrap* *


was fürn schwachsinn 
wenn das hier schon mal richtig 
beantwortet worden wäre, würde ich 
nicht fragen

nix zeilemumbruch erzwingen...
eher nen scrollbalken, der das ganze 
scrollt...

@hochi: joa, da gibts das problem auch


----------



## Christoph (29. April 2003)

> @hochi: Ich glaub statistisch gesehen bust du der, der am meisten von der V4 spricht



du siehst nicht alles


----------



## Fabian H (29. April 2003)

@sam: Dann aber bitte auch deutlich hinschreiben!

Hier die (oder eine (oder auch keine)) Lösung des Problems:
Du machst das overflow:auto; in die blockquote-Tags rein:

```
<blockquote style="overflow:auto;width:100%">
```
Und vergrößerst dann alle blockquote-Tags in der Höhe:

```
<script type="text/javascript">
if (document.all) {
  blocks = window.document.getElementsByTagName("blockquote");
  for(i = 0; i < blocks.length; i++) {
    blocks[i].style.height = blocks[i].offsetHeight + 17;
  }
}
</script>
```


----------



## sam (29. April 2003)

> _Original geschrieben von Nuinmundo _
> *@sam: Dann aber bitte auch deutlich hinschreiben!*


also bitte...
les meinen text und sag das nochmal 

mal schauen ob das da geht, danke


----------



## Fabian H (29. April 2003)

> dieser code darf keine zeilenumbrücke an
> den falschen stellen haben, deshalb
> nowrap bzw. white-space:nowrap...


Wenn man das als deutlich bezeichnen kann


----------



## sam (29. April 2003)

> _Original geschrieben von Nuinmundo _
> *Wenn man das als deutlich bezeichnen kann  *


vielleicht sollte ichs noch *fett* schreiben  

also dein lösungsversuch scheitert genau 
wie meiner


----------



## Fabian H (29. April 2003)

Vielleicht musst du noch die 17 anpassen (= erhöhen). Weil ich habs getestet und es funzt:


```
fdg dgfg df gdfdfsdafdfasd

<blockquote style="overflow:auto;width:100%">fjdsapf...Hier bitte viel Text einfügen...fjglöd
<br>
fsdfasdgkljfsdlgdjflögjfd
<br>
sdgdfsgsdf</blockquote>


<script type="text/javascript">
if (document.all) {
  blocks = window.document.getElementsByTagName("blockquote");
  for(i = 0; i < blocks.length; i++) {
    blocks[i].style.height = blocks[i].offsetHeight + 17;
  }
}
</script>
```


----------



## sam (29. April 2003)

wenn man ein _white-space:nowrap_ einfügt, 
dann geht das ja echt 
danke

mozilla: ok
ie: ok
opera: kein scrollbalken

vorschläge?

edit: hmmmm, opera scheint overflow nicht 
zu kennen...verzwickte lage


----------



## Fabian H (29. April 2003)

Zum Opera Prob: Sorry, im Moment nichts. Abba hatte Opera nicht schon immer Schwierigkeiten mit der overflow Eigenschaft?

Zum white-space:nowrap:
Das hab ich übersehen.
Allerdings kann da auch mit einem <pre> geholfen werden. Wenn du Boardsoftware benutz, sollte das dabei sein.


----------



## sam (29. April 2003)

hmmm, da muss ich mir aber jetzt 
noch was überlegen....

```
if (window.opera) {
top.location = 'http://www.webstandards.org';
}
```
 
naja, vielleicht dochn bisschen 
benutzerfreundlicher


----------



## Fabian H (29. April 2003)

Im schlimmsten Falle vielleicht so:

```
echo "<iframe width=\"100%\">$buffer</iframe>";
```
Allerdings dürfte das mit der Höhe nicht hinhauen


----------



## sam (29. April 2003)

hmmmm entweder opera ausschließen oder 
ne alternativlösung finden...

alternativlösung wär mir lieber, nur wie?
hmmmm
vielleicht wrap ich den text in opera 
und schreib nen text drunter, dass opera 
stinkt


----------



## Andreas Gaisbauer (30. April 2003)

Hallo mein Hirte 

Naja.. ein Lösungsversuch - bin mir sicher den hattest du auch schon im Hinterkopf - is halt wirklich nicht schön  - schreib dir deinen eigenen (DHTML)-Scroller... Ich mein sowas wie sie auf der Startseite von http://www.dhtmlcentral.com/ verwenden - müsste X-Browser machbar sein... Code muss ich dir bestimmt keinen liefern. OK - es gibt Leute die JS ausgestellt haben, aber man kanns nicht allen rechtmachen...


bye


----------



## sam (30. April 2003)

an einen dhtml-scroller hatte ich auch 
schon gedacht...müsste allerdings auch 
opera-kompatibel sein 
mal schauen, ob ich da was feines finde.
wer js ausgeschaltet hat, hat bei mir 
sowieso nix zu suchen


----------



## sam (3. Juni 2003)

So, da ein dHTML-Scroller nach reiflicher 
Überlegung nicht wirklich in Frage kommt, 
weil er beim Markieren leider nicht mit-
scrollt, hab ich weiterprobiert und bin 
fast fertig (sogar Opera bockt kaum noch)

Leider ist in fast jedem Browser der Abstand 
vom Rand zum Code anders, sprich: der IE 
hat unten eine Leerzeile, Opera oben, und 
Mozilla oben und unten ne halbe Zeile  
Gibt es in JS eine Möglichkeit da was 
abzuknabbern?


----------



## Andreas Gaisbauer (3. Juni 2003)

Mit JS alleine sicher nicht - mit Javascript und CSS schon eher  Ein Browserspezifisches Stylesheet mit ggf. negativen Margin oder Paddingwerten - ist zwar nicht ganz Standardkonform, wird aber imo durchgehend erkannt...

bye


----------



## sam (3. Juni 2003)

Hab ich schon ein bisschen mit gespielt...
_xxx.style.padding-top_ gibt es nicht, 
oder liege ich da falsch?
Wie lautet die richtige JS-Umsetzung?

btw: Wie erkenne ich per JS meinen lieben 
Mozilla? Opera (window.opera) und der IE 
(document.all) sind ja einfach, aber was 
kann der Mozilla, was die anderen nicht 
können?


----------



## Andreas Gaisbauer (3. Juni 2003)

> _Original geschrieben von sam _
> *Hab ich schon ein bisschen mit gespielt...
> xxx.style.padding-top gibt es nicht,
> oder liege ich da falsch?*



Jein  padding-top gibts nicht, aber paddingTop (ohne "-")
Quelle: http://selfhtml.teamone.de/javascript/objekte/style.htm#style_eigenschaften



> *
> btw: Wie erkenne ich per JS meinen lieben
> Mozilla? Opera (window.opera) und der IE
> (document.all) sind ja einfach, aber was
> ...


Du könntest entweder sagen: if != IE && != Opera dann Mozilla oder du versuchst über die Mozilla Filter zu gehen - MozOpacity usw... keine Ahnung ob das Funktionieren wird - hab ich noch nie versucht... Gibt sich der Mozilla nicht als Netscape aus - die beiden beruhen doch auf der selben Gecko-engine, oder?

bye


----------



## Andreas Gaisbauer (3. Juni 2003)

Hab mir jetzt nochmal die Sachen angechaut die man aus den Browser rauskriegen kann... Dabei kam follgnedes zum Vorschein:


```
Internet Explorer 6
appName = 'Microsoft Internet Explorer'
userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
             5.1; ...NET CLR 1.0.3705; .NET CLR 1.1.4322)'
appVersion = '4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 
              1.0.3705; .NET CLR 1.1.4322)'
appCodeName = 'Mozilla'


Opera 6.05
appName = 'Microsoft Internet Explorer'
userAgent = 'Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 
             6.05  [de]'
appVersion = '4.0 (compatible; MSIE 5.0; Windows XP)'
appCodeName = 'Mozilla'


Mozilla 1
appName = 'Netscape'
userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
             rv:1.2.1) Gecko/20021130'
appVersion = '5.0 (Windows; en-US)'
appCodeName = 'Mozilla'


Netscape 7
appName = 'Netscape'
userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
             rv:1.2.1) Gecko/20021130'
appVersion = '5.0 (Windows; de-DE)'
appCodeName = 'Mozilla'
```
da muss man doch was mit userAgent und evtl match() etwas basteln können 

ciao


----------

