• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Seiten drucken: div-Bereiche EINschließen, statt ausschließen

html_marcel

Neues Mitglied
Wenn ich mich in self-HTML richtig umgeschaut habe, dann ist da wohl nur beschrieben, wie man div-Bereiche von der zu druckenden Seite ausschließen kann.

Ich möchte das nun aber so dass er nur bestimmte div-Bereiche zum Drucken gibt!

Das Problem ist, dass einige div-Bereiche ineinander verschachtelt sind, und ich nur den innersten drucken - äussere ausschließen möchte. Plus ein Logo vll noch dazu und eine Adresse.
Dafür könnte man dann in jede HTML-Seite einen div-Bereich integrieren, der nur fürs Drucken ist, und Logo und Adresse enthält.

geht das?
danke schonmal!
 
Zuletzt bearbeitet:
Werbung:
Blende die Elemente bei der normalen Anzeige im Browser per "display: none;" aus und in der Druckansicht mit "display: block;" ein. Dann hast Du Bereiche die nur im Druck zu sehen sind.
 
Ah ja stimmt ok danke. Das ist ja wie in selfHTML beschrieben.

Aber was mach ich mit meinem eigentlich Problem? div-Bereiche die in einem andren div-Bereich verschachtelt sind explizit zu drucken und alle andren nicht?
 
Werbung:
Unterscheide die zu druckenden Elemente von den nicht zu druckenden Elementen mittels einer zusätzlichen CSS-Klasse, z.B. "print".
 
thx für den link!

Unterscheide die zu druckenden Elemente von den nicht zu druckenden Elementen mittels einer zusätzlichen CSS-Klasse, z.B. "print".

Ja aber genau da ist ja das Problem.
Ich habe einen div-bereich1 mit Inhalt, der NICHT gedruckt werden soll.
Innerhalb genau diesen div-Bereichs ist ein div-Bereich2 den ich drucken will.

Wenn wir jetzt annehmen das würde so klappen wie beschrieben dann müsste ich den div-Bereich1 als "bitte nicht drucken" deklarieren.
Damit wird aber alles innerhalb dieses div-Bereichs NICHT gedruckt - insbesondere divBereich2 !

also mein Szenario:
<div print=nein!>
der Text hier soll nicht gedruckt werden
<div print=ja!>
den hier will ich drucken.
</div>
</div>

da druckt er doch dann gar nix, oder?
 
Werbung:
Hm ok aber mir kam grad selber eine Idee - ich mach es einfach so :)

in rot meine Änderung am Original:

Code:
<div>
   [COLOR="red"]<div "do_not_print">[/COLOR]
   soll nicht gedruckt werden
   [COLOR="red"]</div>[/COLOR]
   <div>
      soll gedruckt werden
   </div>
</div>

Also den Text, der nicht gedruckt werden soll, mit neuen div-bereichen ausstatten :)

Aber dann kommt schon das nächste Problem:
der äusserste div-Bereich rückt alles nach rechts. Diese Einrückung hätte ich dann auch auf dem Papier :(
 
Diese Einrückung hätte ich dann auch auf dem Papier :(
Nein, da du in einer (angenommenen) print.css für die entsprechende class/id neue Formatierungen, Positionen, Margins etc.pp. vorgibst.
Die Monitor- und die Print-css können (und müssen teilweise) völlig getrennte Wege im Layout gehen. Müssen, weil es im Druck sinnvoll ist, einen seitlichen Rand zu definieren, der auf dem Monitor störend sein könnte.
Führe Dir vor Augen, dass Du 2 (oder mehr; es gibt ja auch noch Blinde/Sehbehinderte, die sich die Seite z.B. über den Brailledrucker ausgeben lassen) völlig unterschiedliche Stylesheets anlegen kannst - und solltest.
Farbpartonen sind, je nach Drucker, reichlich teuer, also ist es ggf. sinnvoll, Farbe in schwarz oder Graustufen umzuwandeln, Buttons müssen nicht mit ausgedruckt werden, (Mailto-)Links können (sollten) anders dargestellt werden, Bilder müssen nicht unbedingt sinnvoll sein (Graustufen), etc. pp. Das alles definierst Du in der print.css.

Grüsse
low
 
Werbung:
vielen dank für die ausführlichen Hinweise.
Dann werd ich mich mal mit der print.css beschäftigen!

ich schreib dann wenn ich erfolgreich bin
 
Zurück
Oben