-
Hi Leute!
"overflow: auto" ist ja gerade für dynamische Inhalte (sprich Gästebuch, Forum, etc.) mit ebenfalls variabler Breite eine feine Sache. Man kann so verhindern, dass irgendjemand durch überbreite Postings das Design der Page zerstört. So weit so gut, nun musste ich allerdings bemerken, dass wenn ich einem Div-Container nur eine Breite zuweise, aber keine Höhe, und der Inhalt nur einzeilig ist, die Darstellung im Internet Explorer unbrauchbar ist. Überhaupt hat der Internet Explorer die unangenehme Eigenschaft, dass er auch die Höhe beschneidet, wenn keine Angabe existiert.
Ich hoffe, irgendwer hat sich dieses Problem schonmal zu Herzen genommen und einen passenden Lösungsansatz dafür parat.
PS.: es gibt in CSS eine Eigenschaft "min-height", die dieses Problem lösen könnte, jedoch bisher nur von Mozilla/Netscape-Browsern unterstützt wird, wo die Darstellung sowieso passt... (siehe SelfHTML)
Abschließend noch ein Codeschnipsel, damit ihr das Ganze schneller nachvollziehen könnt:
Code :1 2 3 4 5 6 7
<html> <body> <div style="width: 200px; overflow: auto;"> tyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyr </div> </body> </html>
Regards...<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Möchte noch anmerken, dass ich auch weiß, das das Problem daher rührt, dass der Internet Explorer die Scrollbalken innerhalb des Div-Bereichs einbindet und nicht außerhalb, wie der Mozilla

Regards...<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Hi,
es existiert der sogenannte "Star html Selector Bug". Er bewirkt, dass alle CSS-Definitionen,
die mit * html eingeleitet werden, nur von IEs ab Version 4.x und höher interpretiert
werden.
Damit wäre es möglich, eine Mindesthöhe anzugeben, die nur vom IE ausgewertet
wird.
Die CSS-Formatierung könnte wie folgt aussehen:
Mit dem zugehörigen HTML-Abschnitt wird auch im IE eine Zeile angezeigt und dieCode :1 2 3
.testDiv{ width: 200px; overflow: auto;} * html .testDiv{ height: 35px;}
vertikale Scrollbar ist bedienbar.
Ich hoffe, dass bringt Dich weiter.Code :1 2 3 4
<div class="testDiv"> tyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyr<br> tyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyrstbrerstyr </div>
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Hi Quaese!
Die Browserweiche ist schonmal ein guter Anfang. Das mit dem "* html" hatt ich schon total vergessen =). Aber wie du selbst sagst, du gibst dem Internet-Explorer eine "Mindesthöhe". Das wäre sinnvoll, aber leider kennt er "min-height" nicht und wenn ich "height" benutze nimmt er das ja als fixe Höhe, also auch wenn der Text sowieso mehrzeilig wäre und ich die Höhenangabe nicht brauchen würde. Das ist irgendwie ziemlich nervig, weil dann muss man ja erst recht wieder jedesmal skrollen
.
Vielleicht hast du ja noch ne Idee auf Lager, danke auf jeden Fall.
Regards...<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Hi,
wenn die Browserweiche schon eingesetzt wird, kannst Du dort auch CSS-Eigenschaften
verwenden, die nur für den IE gelten. Ich denke da insbesondere an overflow-x
und overflow-y.
Wenn Du sie wie folgt einbindest, sollte es funktionieren, wie Du es Dir vorstellst.
CiaoCode :1 2
* html .testDiv{ overflow-x: scroll; overflow-y: visible;}
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Wow, das funkt ja geradezu perfekt...
1000 Dank
Regards...<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Muss doch noch mal nerven...
Deine Lösung funktioniert ja soweit sehr gut, aber wenn mein Text jetzt kleiner ist als der Bereich, wird trotzdem die Scrollbar angezeigt
.
Gibts da einen Wert wo er das automatisch checkt? Ich hab mal bisschen rumprobiert, aber da ist nichts dabei rausgekommen
.
Regards...
EDIT: Wozu brauch ich überhaupt "overflow-y"? Das funktioniert eh ohne genauso?!<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Hi,
nach langem Tüfteln bin ich hoffentlich zu einem befriedigenden Ergebnis gekommen.
Wird im IE ein Bereich definiert, dessen Breite begrenzt ist, seine Höhe jedoch
dynamisch anwächst, wird die letzte Zeile bzw. der unterste Bereich des Inhalts
nicht angezeigt (wird evtl. vom innenliegenden Scrollbar verdeckt). Aus diesem
Grund muss im IE ein zusätzliches Element zur Höhenregulierung angelegt
werden.
Folgende CSS-Definition ist notwendig:
Die ersten beiden Klassen sind klar.Code :1 2 3 4 5 6 7 8 9
.testDiv{ width: 200px; overflow: auto;} * html .testDiv{ overflow-x: auto; overflow-y: visible;} .dummy{ line-height: 0pt; height: 0px; font-size: 0pt;} * html .dummy{ height: 20px;}
Mit .dummy wird die Höhe des Regulierungs-Elementes auf Null gesetzt.
Damit ist es zunächst nicht zu sehen (wichtig für Opera,Netscape, Mozilla).
Als nächstes wird dem Element über eine erneute Weiche die Höhe von 20px
zugewiesen (entspricht in etwa der Höhe einer Scrollbar). Damit ist
gewährleistet, dass der verdeckte Bereich auch im IE angezeigt wird.
Der HTML-Code könnte wie folgt aussehen:
Das ganze funktioniert im IE5.01, IE5.5, IE6, Mozilla 1.6, Opera 7.22 und Netscape 7.1.Code :1 2 3 4 5 6 7
<div class="testDiv"> Test<br> asödlfkaösdklfjaösdlkfjaewopieruqpiewrqvnaödslkuernaökjfd<br> Text <div class="dummy"> </div> </div>
Der IE4 zeigt bei übergrossen horizontalen Inhalten neben der horizontalen Scrollbar
auch die vertikale an.
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Also ich glaube darauf wäre ich nie gekommen =))
Vielen Dank jedenfalls für deine argen Bemühungen.
Das wäre doch fast ein Tutorial wert oder?
Regards...
PS: Wenn du mal zufällig in der Gegend bist geb ich dir ein Bier aus :-p<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Muss jetzt doch noch mal nachhaken =)
Du hast mich mit dem Dummy irgendwie inspiriert und jetzt kam ich auf die Idee, stattdessen einfach "padding-bottom" zu verwenden... Sag doch mal was du davon hältst. Ich habs jedenfalls probiert und bei mir gabs damit kein Problem.
Regards...
EDIT: Einziges Problem (bei beiden Methoden) ist, dass wenn keine Scrollbar benötigt wird, ein gewisser Abstand zum umliegenden Text besteht, aber ich glaube, das ist (gerade bei dynamischen Skripten) kein wirkliches Problem. Wollt ich nur der Vollständigkeit halber erwähnen.Geändert von xxenon (17.06.04 um 00:29 Uhr)
<?php echo "document.write('Warum einfach, wenns auch kompliziert geht?');"; ?>
-
Hi,
hmmm, mit dem padding-bottom ist sicherlich die wesentlich elegantere Lösung.
Ich bin mir sicher, dass ich das auch versucht hatte - allerdings ohne Erfolg
(vielleicht auch schon zu müde). Nachdem ich es jetzt nochmals versucht hatte,
ging es problemlos. Damit kann auf den dummy-Bereich verzichtet werden und
es wird übersichtlicher.
Dank' Dir für den Hinweis.
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
hallo ihr beidenOriginal geschrieben von Quaese
...mit dem padding-bottom ist sicherlich die wesentlich elegantere Lösung....
das könnte die lösung für mein problem sein.
kann nicht einer von euch die padding-bottom-lösung-ohne-dummy für eine css-dummy posten.
thx.
-
Hi,
voilà, die padding-bottom-lösung-ohne-dummy:
CiaoCode :1 2 3 4 5 6 7 8 9
.overflowDiv{ width: 200px; overflow: auto; border: 1px solid black; margin-top: 20px; margin-left: 5px;} * html .overflowDiv{ overflow-x: auto; overflow-y: visible; padding-bottom: 20px;}
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
besten dank.
abgewandelt auf meine bedürfnisse sieht das so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
#mamboMainBody { position: absolute; top: 200px; left: 25px; width: 600px; height: 400px; margin:20 0 0 5; overflow: auto; } * html #mamboMainBody { overflow-x: auto; overflow-y: visible; padding-bottom: 20px;}
aber das funktioniert bei mir nicht. habe ich was falsch übernommen?.
-
Hi,
was genau willst Du machen?
Obiger Thread behandelt einen Container mit dynamischer Höhe. Du weist Deinem
Div jedoch eine feste Höhe zu.
Willst Du einen festen Anzeigebereich, in dem bei übergrossem Inhalt Scrollbars
angezeigt werden, so kann die CSS-Weiche für den IE entfallen.
Soll sich die Höhe des Div-Containers dynamisch anpassen, so musst Du in DeinemCode :1 2 3 4 5 6 7
#mamboMainBody { position: absolute; top: 200px; left: 25px; width: 600px; height: 400px; margin: 20 0 0 5; overflow: auto;}
bisherigen StyleSheet die Zeile height: 400px; löschen.
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
Ähnliche Themen
-
"Vertrauenswürdige Sites"-Formular im Internet Explorer aktivieren
Von admichi im Forum NetzwerkeAntworten: 0Letzter Beitrag: 18.02.10, 15:28 -
Horizontale "Anker" mit overflow:auto,
Von methodus im Forum HTML & XHTMLAntworten: 4Letzter Beitrag: 14.10.05, 18:46 -
<div style="overflow-y:auto"> nur im IE... Alternativen?
Von hans_schmid im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 21.07.04, 18:59 -
Internet Explorer "speichern symbole" verstecken
Von vsitor im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 16.07.04, 22:28 -
Erfahrungen im Bereich der "Rich Internet Applications"
Von Vaio82 im Forum Coders TalkAntworten: 5Letzter Beitrag: 03.07.04, 20:11



1Danke


Login





