Inhalt verschluckt - media-print und Mozilla
west468
- css
Hallo Leute!
Ein Problem gelöst, schon kommt das nächste. Diesmal zum Thema Druck.
Meine Seite lasse ich mit einer print.css für's Drucken aufbereiten.
Die DIVs für die Zierleiste und das Menü werden dabei ausgeblendet, so daß nur der Inhalt-DIV gedruckt wird (mit einigen Veränderungen in der Darstellung).
Das funktioniert klasse in Opera 7.2x und auch dem IE6.
Aber mit Mozilla 1.5 und Firebird 0.7 wird jeweils nur ein Blatt gedruckt, der Rest wird verschluckt. Es wird auch nur "1 von 1" angezeigt.
Ist das ein Bug von Mozilla? Oder hab ich ne Angabe falsch gesetzt?
http://www.martin-baluses.de/test.html
http://www.martin-baluses.de/print.css
http://www.martin-baluses.de/format.css
Für Hinweise und Ratschläge bin ich sehr dankbar.
Grüße
Martin
Hallo,
Hier (Mozilla 1.5, Linux) kann ich Dein Problem nachvollziehen.
Du verwendest viele potentiell gefaehrliche Sachen wie:
Ich vermute jedoch, dass Du Probleme kriegst,
weil das Stylesheet format.css auch beim Druck
(teilweise) angewendet wird.
http://www.martin-baluses.de/test.html
http://www.martin-baluses.de/print.css
http://www.martin-baluses.de/format.css
Wie Du aus einer URL einen klickbaren Link machen kannst,
steht in der FAQ: </faq/#Q-19>
Du bindest die externen Stylesheets wie folgt ein:
<link rel="stylesheet" type="text/css" href="format.css" media="all" />
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
Das heisst, alles aus der format.css, das nicht explizit in der print.css
ueberschrieben wird, wirkt sich auch beim Druck aus.
Ich bezweifle, dass Dein Stylesheet format.css wirklich fuer alle
Medien geeignet ist, also z.B. fuer Handhelds oder WebTV.
Alles, was nur fuer grosse Bildschirme sowie Beamer gelten soll,
soll nur fuer die Medien "screen" und "projection" angeboten werden.
"projection" wird z.B. von Opera im Vollbildmodus verwendet.
Probier's mal mit:
<link rel="stylesheet" type="text/css" href="format.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
Alternativ koenntest Du die "gefaehrlichen" Sachen wie Positionierung u.s.w.,
die sowieso nur fuer den Bildschirm gelten sollen, in der format.css in einen
eigenen Bereich packen:
@media screen, projection
{
div#inhalt {
left:20%;
top:76px;
width:80%;
position:absolute;
z-index:0;
}
}
u.s.w.
Beide Methoden verstecken das CSS vor Netscape 4, was vielleicht
auch erwuenscht ist.
Btw. Du setzt mit Deinem Frame-aehnlichen Layout voraus, dass das
Browserfenster ca. 550 Pixel hoch ist. Bei weniger hohen Fenstern
ist nicht die gesamte Navigation sichtbar, und es gibt auch
keinen Scrollbalken. Sowas finde ich sehr, sehr schlecht.
Ich finde es viel natuerlicher, dass die Navigation mit dem Content
nach oben wegscrollt und dafuer auch vollstaendig erreichbar ist.
Just my 2 cents.
Gruesse,
Thomas
Hallo Thomas!
Du verwendest viele potentiell gefaehrliche Sachen wie:
- absolute und fixe Positionierung
- zugleich float
Für nen einfacheren Weg, meine DIV-Anordnung hinzubekommen, bin ich jederzeit offen, solange muß es wohl so bleiben.
- Mischen von absoluten (px) und relativen (%) Einheiten
Werd ich nochmal drübersehen, was ich da ändern kann.
Ich vermute jedoch, dass Du Probleme kriegst,
weil das Stylesheet format.css auch beim Druck
(teilweise) angewendet wird.
Richtig vermutet, hatte auch den Gedanken, aber die Idee mit "screen,m projection" war mir wohl zu simpel.
Alles, was nur fuer grosse Bildschirme sowie Beamer gelten soll,
soll nur fuer die Medien "screen" und "projection" angeboten
Stimm ich vollkommen überein, hab ich nun auch geändert. Problem ist damit nun auch behoben! Dankesehr!
Btw. Du setzt mit Deinem Frame-aehnlichen Layout voraus, dass das
Browserfenster ca. 550 Pixel hoch ist. Bei weniger hohen Fenstern
Da werd ich mir nochmal nen Kopf drüber machen, ideal isses wirklich nicht.
Ich finde es viel natuerlicher, dass die Navigation mit dem Content
nach oben wegscrollt und dafuer auch vollstaendig erreichbar ist.
Weiß nicht, natürlicher? Oder einfach notwendig im Moment (technisch gesehen, wenn man auf Frames zum Glück verzichten und nicht das Problem bekommen will, was nun bei mir auftritt (550 Pixel)
Danke für die Anregungen!
Grüße
Martin
Hallo Martin,
Schoen, dass das Problem so einfach zu beheben war!
Du verwendest viele potentiell gefaehrliche Sachen wie:
- absolute und fixe Positionierung
- zugleich float
Für nen einfacheren Weg, meine DIV-Anordnung hinzubekommen, bin ich jederzeit offen, solange muß es wohl so bleiben.
Ich glaube, die Faustregel ist:
Entweder Float oder Positionierung.
Das _Mischen_ ist AFAIK gefaehrlich.
Teste Deine Seiten in moeglichst vielen Browsern - vielleicht
hast Du auch Glueck und kannst es so lassen.
[Frames-aehnliches Layout, fix positionierte Navigation ohne Scrollbalken]
[...] das Problem [...], was nun bei mir auftritt (550 Pixel)
Es gibt ja auch noch das overflow:auto Zeugs,
um bei Bedarf Scrollbalken anzuzeigen.
http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#overflow
Probier, was Du damit machen kannst.
Du bist uebrigens in "guter Gesellschaft" - auch das W3C braucht
so position:fixed Zeugs fuer ein Navigationsmenue, das das gleiche
Problem aufweist (nicht alles ist sichtbar, wenn das Fenster zuwenig
hoch ist):
http://www.w3.org/Style/
Immerhin brauchen die W3C-Leute es dort nur gerade fuer die
Binnennavigation auf der Seite selbst. Die Inhalte sind also
auch einfach mit Runterscrollen erreichbar.
Du planst aber offenbar, die ganze Navigation in diesem
fix positionierten Bereich anzusiedeln. Das ist kritisch.
Ich finde position:fixed nach wie vor schlecht.
Sogar schlechter als das entsprechende Problem bei Frames.
Dort konnte man, selbst wenn der Wepdisainer die
Scrollbalken unterdrueckt hatte, wenigstens noch
in den Navi-Frame reinklicken und dann mit den Cursor-Tasten
oder PageUp/PageDown den ganzen Inhalt des Frames sehen.
Das ist bei position:fixed Zeugs ohne Scrollbalken nicht moeglich.
Was ausserhalb des Browserfensters ist, ist gar nicht mehr
erreichbar.
(Und man komme mir jetzt nicht mit F11-Vollbildmodus oder
gar mit Benutzerstylesheets...)
Freundliche Gruesse,
Thomas