IE-maxwidth-Workaround und Ausdruck
Jan L.
- css
0 Jeena Paradies0 Jan L.0 Ingo Turski0 Jan L.
0 Cyx230 Jan L.
Hallo allerseits,
Ich verwende auf einer Seite für den Container, in dem der Hauptinhalt liegt, die CSS-Eigenschaft 'max-width', um gute Lesbarkeit bei großen Browserfenstern sicherzustellen.
Für den IE benutze ich dafür einen Javascript-Workaround. Die Methode von http://www.bestviewed.de/css/bsp/maxwidth/ kann ich nicht verwenden, da im Inhalt Tabellen vorkommen können.
Das Ganze sieht bis jetzt so aus:
<style type="text/css" title="standard">
/* hier wird das Stylesheet mit der korrekten maxwidth-Eigenschaft eingebunden */
@import url(/data/modern.css);
</style>
<!--[if gte IE 5]>
<style type="text/css">
#text {
width: expression(document.getElementById('text').offsetWidth > 850 ? '850px' : 'auto');
}
</style>
<![endif]-->
Danach binde ich noch ein Stylesheet für die Druckausgabe ein.
Wenn ich jetzt im IE versuche die Seite auszudrucken und die Breite des Containers 'text' durch die expression explizit auf '850px' gesetzt wurde, wird der Container auch im Ausdruck 850px Breit und der Inhalt somit rechts abgeschnitten (zumindest auf meinem 'normalen' Drucker).
Ich habe versucht das zu korrigieren, indem ich im Druckstylesheet angegeben habe:
#text { width: auto; }
Das hat allerdings nichts gebracht.
Weiß jemand von euch eine Lösung für dieses Problem?
Neuere Versionen von Mozilla und Opera stellen übrigens alles ordentlich dar.
Gruß, Jan
Hallo Jan L.,
<!--[if gte IE 5]>
So was ist ungünstig da ja der nächste IE also 7 ode so max-width aller wahrscheinlichkeit nach können wird. Damit verwirrst du den Armen IE 7 total so dass deine seite unter Umständen scheiße gerändert wird. Versuche mal lieber kleiner und gleich 6
Leider kann ich dir bei deinem Problem nicht helfen.
Grüße
Jeena Paradies
Hallo Jeena,
Hallo Jan L.,
Jan genügt ;-)
<!--[if gte IE 5]>
So was ist ungünstig da ja der nächste IE also 7 ode so max-width aller wahrscheinlichkeit nach können wird. Damit verwirrst du den Armen IE 7 total so dass deine seite unter Umständen scheiße gerändert wird.
Da mag was Wahres dran sein.
Versuche mal lieber kleiner und gleich 6
Was passiert dann z.B. mit IE4? Ignoriert der 'expression()' komplett? Ansonsten würde das ja Javascript-Fehler produzieren.
Leider kann ich dir bei deinem Problem nicht helfen.
Schade. Trotzdem danke. :-(
Gruß, Jan
Hi,
Leider kann ich dir bei deinem Problem nicht helfen.
Schade. Trotzdem danke. :-(
wieso so schnell aufgeben?
das Problem dürfte doch ganz einfach zu lösen sein, indem Du die Expression nur @media screen, projection angibst, dann sollte diese Definition mit dem print-css nicht mehr kollidieren.
freundliche Grüße
Ingo
Hallo Ingo,
das Problem dürfte doch ganz einfach zu lösen sein, indem Du die Expression nur @media screen, projection angibst, dann sollte diese Definition mit dem print-css nicht mehr kollidieren.
Klingt logisch, bringt aber leider auch nicht den gewünschten Erfolg. Ich habe auch zusätzlich noch versucht den Style mit der expression für den IE als externes Stylesheet einzubinden und 'media="screen"' im <link>-Element anzugeben. Auch 'doppelt gemoppelt' hat das nicht geholfen. Das Problem besteht weiterhin.
Danke auch dir trotzdem.
Gruß, Jan
Hallo,
so scheint es, zumindest beim Test mit IE 6, zu funktionieren:
<!--[if lt IE 7]>
<style type="text/css">
#text {width:auto; border:1px solid black}
@media screen{
#text {
width: expression(document.getElementById('text').offsetWidth > 850 ? '850px' : 'auto');
border:1px solid red;
}}
</style>
<![endif]-->
Allerdings sind die expression meist instabil, und so könnte es
besser sein die expression gleich per JavaScript zu setzen und
ggf. über eine Funktion u.U. Fehler abzufangen, oder m.E. noch
beser per JavaScript für den IE den Inhalt des Div in eine Tabelle
einzubauen (ohne expression).
Grüsse
Cyx23
Hallo,
so scheint es, zumindest beim Test mit IE 6, zu funktionieren:
[...]
Ja, allerdings nur im Quirks-Mode. Ich habe auch noch ein wenig getestet
und herausgefunden, daß die Druckansicht auch schon in meinem Beispiel
am Anfang gut aussieht, sobald man keinen Doctype angibt. Das möchte ich
aber eigentlich auch vermeiden.
Allerdings sind die expression meist instabil, und so könnte es
besser sein die expression gleich per JavaScript zu setzen und
ggf. über eine Funktion u.U. Fehler abzufangen, oder m.E. noch
beser per JavaScript für den IE den Inhalt des Div in eine Tabelle
einzubauen (ohne expression).
Danke für die Hinweise. Werd heut abend wohl noch ein bißchen basteln
müssen und das mal testen.
Gruß, Jan