LX: !$"§%@@!%&/ Internet Explorer 6!!

Beitrag lesen

Hallo, Peter!

Danke mal für diesen Tipp, werde ich probieren! Ein Problem wird nur sein: Wie weiss ich welche zoom Angabe ich verwenden muss damit einfach nur alles gedruckt wird?

Das kann Dir leider keiner genau sagen, deswegen ja auch der Alternativvorschlag mit dem PDF. Man könnte mit JavaScript nach dem Onload-Event die Breite der Seite berechnen und daraufhin ein Style mit dem richtigen Zoom-Faktor einfügen, etwa so:

window.onload = function(o) { return function() {  
   if (o) { o(); }  
   if (!document.all || window.XMLHttpRequest) { return; // IE6 only }  
   var stylediv = document.createElement('div');  
   stylediv.innerHTML = '<div>IE...</div><style type="text/css">@media print { zoom: '+(800/(document.documentElement.clientWidth||800))+'; }</style>';  
   document.getElementsByTagName('head')[0].appendChild(stylediv.getElementsByTagName('style')[0]);  
}}(window.onload);

Dabei bin ich 1. davon ausgegangen, dass die maximale gedruckte Breite sicherheitshalber ca. 800px entsprechen sollte und 2. dass Du nicht im Quirks-Mode bist (ansonsten bitte document.body.clientWidth verwenden und zum Schämen in die Ecke stellen). An dieser Stelle kannst Du gerne mit den Zahlen ein wenig herumspielen, um Dein Ziel zu erreichen.

1.) Welche DTD nehme ich am besten für problemlose und *konsistente* Darstellung in IE6 - IE9 ? Gar keine aka Quirks Modus? (das ist jetzt der Fall)

Traurige Wahrheit: der IE ignoriert den Inhalt einer DTD komplett, solange die Doctype-Definition nur vorhanden und nicht mit einer vorangestellten XML-Deklaration versehen ist.

2.) werden width="" Angaben (z.B. in Tabellen und Bildern) immer durch die CSS Pendants überschrieben?

Ja und jein. Normalerweise sind die width-Attribute implizit, während die style-width-Angaben explizit sind. Das heißt: bei einem Image- oder Video-Element wird dadurch normalerweise die Auflösung und nicht die Größe der Darstellung definiert. Damit orientiert sich die Darstellung immer an der Style-Angabe.

3.) Wenn ich einen style Tag mit z.B. margin habe, wird dieser durch einen weiteren, globalen @media print {} überschrieben? Falls nein, gibt es die Möglichkeit dazu, ohne die z.B. statische style="margin: 99pt" Definition in eine CSS Klasse auslagern zu müssen?

@media-Definitionen fügen normalerweise keine zusätzliche Ebene der Spezifität hinzu, d.h. die letzte Angabe auf gleicher Ebene wird genommen. Wenn Du sicher gehen willst, dass die margin-Angabe übernommen ist, gebe ihr ein !important hinter dem Attributwert mit.

Gruß, LX

--
RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.