Nur Teilbereiche einer Seite drucken
Axel
- css
0 Ingo Turski0 Axel0 schwarze Piste0 Axel
0 Ingo Turski0 Axel0 MudGuard0 Ingo Turski0 Axel
0 Axel Richter
0 MudGuard
Hallo,
ich habe folgendes Problem.
Ich möchte, auf einer Web-Seite einen bestimmte Teil druckbar machen.
Es sind drei Tabellen vorhanden, die man einzeln drucken können soll, ohne eine andere Seite zu öffnen.
Dazu habe ich eine neue Stylesheet gemacht mit der Angabe media='print'.
Dort enthalten ist folgendes:
* { display:none; }
#eineId { display:inline; }
So funktioniert das aber leider nicht. Die Seite bleibt beim drucken leer. Gibt es eine Möglichkeit, die Angabe mit dem * (Also alle Elemente ausblenden) für eine bestimmte ID oder CLASS zu überschreiben ?
Vielen Dank im Voraus
Schöne Grüße
Axel
Hi,
Es sind drei Tabellen vorhanden, die man einzeln drucken können soll, ohne eine andere Seite zu öffnen.
gebe jeder Tabelle eine ID und blende dann je zwei davon aus.
freundliche Grüße
Ingo
Hi,
gebe jeder Tabelle eine ID und blende dann je zwei davon aus.
Mhh, der Aufbau ist etwas komplizierter. Erstens ist noch ein Navigationsbereich, ein Seitenkopf usw. vohanden. Alles in Allem sind das mehrere verschachtelte Tabellen. Von daher müsste ich min. 15 - 20 Id's ausblenden.
Die Anzahl der Druckbaren Tabellen (Ich sagte es wären drei), können von Seite zu Seite auch variieren.
Deswegen wollte ich halt den weg gehen, alles auszublenden und dann konkret eine ID (oder CLASS) wieder einzublenden.
Noch irgendeine Idee ?
Vielen Dank bis hierher und schönen Gruß
Axel
Tachchen!
Dann blende doch grundsätzlich zunächst einmal TABLE aus und
lasse dann für den Druck einzelne IDs wieder erscheinen!?
Gruß
Die schwarze Piste
Hi,
Dann blende doch grundsätzlich zunächst einmal TABLE aus und
lasse dann für den Druck einzelne IDs wieder erscheinen!?
Mhh, das werde ich nochmal probieren. Mal sehen, ob das geht. (wg. Table = elternelement von dem zu Druckenden).
Aber ich probier das..... morgen :)
Ich melde mich
Schönen Dank, Euch allen
Gute N8
Axel
Hi,
Mhh, der Aufbau ist etwas komplizierter.
:-))
Alles in Allem sind das mehrere verschachtelte Tabellen. Von daher müsste ich min. 15 - 20 Id's ausblenden.
Du kannst auch eine Klasse verwenden und diese dann ausblenden - sogar mit Javascript (</archiv/2002/12/31500/>).
Die Anzahl der Druckbaren Tabellen (Ich sagte es wären drei), können von Seite zu Seite auch variieren.
Kein Problem, wenn Du eine Klasse "ausblenden" verwendest.
Problematisch könnten allerdings Deine Verschachtelungen werden und eine Umgestaltung der Seite erfordern.
freundliche Grüße
Ingo
Hi,
hups hier war ja noch ne NAchricht...
Du kannst auch eine Klasse verwenden und diese dann ausblenden - sogar mit Javascript (</archiv/2002/12/31500/>).
Naja, dass würde aber voraussetzen, dass alle auszublendenen Elemente die gleiche Klasse verwenden. Aber die sind unterschiedlich layoutet und haben daher auch unterschiedliche Klassen (z.B. Navigation, Inhalt o.ä.)
Vielen Dank und schöne Grüße
Axel
Hi,
Du kannst auch eine Klasse verwenden und diese dann ausblenden - sogar mit Javascript (</archiv/2002/12/31500/>).
Naja, dass würde aber voraussetzen, dass alle auszublendenen Elemente die gleiche Klasse verwenden. Aber die sind unterschiedlich layoutet und haben daher auch unterschiedliche Klassen (z.B. Navigation, Inhalt o.ä.)
Ein Element kann gleichzeitig zu mehreren Klassen gehören.
cu,
Andreas
Hi,
Naja, dass würde aber voraussetzen, dass alle auszublendenen Elemente die gleiche Klasse verwenden. Aber die sind unterschiedlich layoutet und haben daher auch unterschiedliche Klassen (z.B. Navigation, Inhalt o.ä.)
Ein Element kann gleichzeitig zu mehreren Klassen gehören.
genau. Und, nur zur Ergänzung: gerade für die hier angeführten Beispiele Navigation und Inhalt würde, da vermutlich nur einmalig verwendet, sinnvoller eine ID verwendet werden.
freundliche Grüße
Ingo
Hallo,
Ein Element kann gleichzeitig zu mehreren Klassen gehören.
Das habe ich nicht gewusst. Das wäre noch eine Möglichkeit, auszuprobieren. Ich bin überrascht, was CSS nicht alles zu bieten hat. Siehe auch meine Antwort auf Axel Richter.
Vielen Dank Euch allen
Schöne Grüße
Axel Hoogestraat
Hallo Namensvetter,
Alles in Allem sind das mehrere verschachtelte Tabellen.
Die Anzahl der Druckbaren Tabellen (Ich sagte es wären drei), können von Seite zu Seite auch variieren.
Noch irgendeine Idee ?
Nein. Bei Deinem Tabellenkonstrukt, welches ich vor meinem geistigen Auge schaudernd vor mir sehe ;-)), wirst Du mit einer separaten Druck-Seite besser fahren. Selbst wenn es Dir gelingt, die Außenrum-Tabelle auszublenden und einige Innendrin-Tabellen wieder einzublenden, werden diese nicht dort stehen, wo Du sie haben willst.
Beim nächsten Mal versuche die Layout-Tabellen wegzulassen.
Navigations-, Kopf-, Fuss- und Inhalts-Bereich sind Bereiche (DIVs). Die Elemente in diesen Bereichen sind, je nach Inhalt, Überschriften (Hx), Textabsätze (P), Bilder (IMG), Tabellen (TABLE), Listen (UL, OL, DL) ... http://de.selfhtml.org/html/referenz/elemente.htm[1] oder auch, wenn der Inalt wiederum einen eigenen Bereich erfordert (z.B. bei Mehrspaltigkeit), DIVs. Das Aussehen _aller_ dieser Elemente und Bereiche regelt CSS.
Erst, wenn Du somit wirklich HTML _und_ CSS einsetzt, kanst Du die Vorteile von CSS richtig nutzen.
[1] Ich verlinke das, weil manche CSS-Freaks wiederum meinen, HTML brauche nur noch die Elemente DIV und SPAN. Das ist, meiner Meinung nach, genauso schlimm, wie Table-Layout.
viele Grüße
Axel
Hi,
Erst, wenn Du somit wirklich HTML _und_ CSS einsetzt, kanst Du die Vorteile von CSS richtig nutzen.
ja, dadurch, dass ich mich nun mit diesem Problem beschäftigt habe, habe ich erst so richtig bemerkt, wie umfangreich die Möglichkeiten mit CSS sind. Ich habe mich immer davon "gegraut", Teile der Seite mit DIV oder SPAN zu erstellen und diese mit CSS zu positionieren. Aber mir scheint, dass ist wohl mittelerweile eine übliche Vorgehensweise.
Jedenfalls habe ich in den letzten Tage bei der Suche schon den einen oder anderen AHA-Effekt gehabt und werde mich sicherlich stärker mit dem Thema beschäftigen. Sehr interessant alles...
Aber bei dem Sprung von Frames auf Tabellen hatte ich auch etwas länger gebraucht ;-) "Spätzünder" :)
Vielen Dank für die viele Hilfe
Schöne Grüße
Axel
Hi,
Erst, wenn Du somit wirklich HTML _und_ CSS einsetzt, kanst Du die Vorteile von CSS richtig nutzen.
ja, dadurch, dass ich mich nun mit diesem Problem beschäftigt habe, habe ich erst so richtig bemerkt, wie umfangreich die Möglichkeiten mit CSS sind. Ich habe mich immer davon "gegraut", Teile der Seite mit DIV oder SPAN zu erstellen und diese mit CSS zu positionieren. Aber mir scheint, dass ist wohl mittelerweile eine übliche Vorgehensweise.
Üblich vielleicht, aber nicht sinnvoll.
Man sollte immer versuchen, div/span zu vermeiden und stattdessen aussagekräftigere Elemente zu benutzen. div/span sollten nur zum Einsatz kommen, wenn kein passendes Element existiert.
cu,
Andreas
Hi,
div/span sollten nur zum Einsatz kommen, wenn kein passendes Element existiert.
hmmm. Also für einen Navigationsbereich wäre ja eine Tabelle eigentlich ganz Sinnvoll. Brauchen ja nicht mehrere verschachtelte zu sein, sondern die kann man ja auch mit CSS positionieren.
Trotzdem liest man an div. Stellen, dass man lieber DIV-Layer als Tabellen nehmen soll.
Was würdest Du da machen ? Deinem Posting würde ich entnehmen, dass Du eine Table nehmen würdest !?!?!
Schöne Grüße
Axel
Hallo.
Trotzdem liest man an div. Stellen, dass man lieber DIV-Layer als Tabellen nehmen soll.
Was würdest Du da machen ?
An den richtigen Stellen lesen. Tabellen sind für tabellarische Daten gedacht, wozu der Inhalt einer Zentralnavigation nur selten zählt. Recht flexibel und gleichzeitig semantisch korrekt sind hingegen im Allgemeinen Listen in ihren drei aktuellen Haupterscheinungsformen innerhalb von HTML.
<div> solltest du nur dann als Layout-Hilfsmittel begreifen, wenn kein anderen Element semantisch gerechtfertigt ist. Oder natürlich dann, wenn du Bereiche im Code als zusammengehörig kennzeichnen möchtest.
MfG, at
Hi,
div/span sollten nur zum Einsatz kommen, wenn kein passendes Element existiert.
hmmm. Also für einen Navigationsbereich wäre ja eine Tabelle eigentlich ganz Sinnvoll.
Für eine Liste von Links halte ich eine Liste für sinnvoll.
cu,
Andreas
Hi,
Dazu habe ich eine neue Stylesheet gemacht mit der Angabe media='print'.
Dort enthalten ist folgendes:
* { display:none; }
Damit wird u.a. das html-Element auf nicht-Anzeige gesetzt.
Sämtliche Kindelemente sind davon auch betroffen.
Und
#eineId { display:inline; }
muß scheitern, weil display:none nicht von Nachfahren-Elemnenten überschrieben werden kann.
Siehe http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-display
none
This value causes an element to generate no boxes in the formatting structure (i.e., the element has no effect on layout). Descendant elements do not generate any boxes either; this behavior cannot be overridden by setting the 'display' property on the descendants.
So funktioniert das aber leider nicht. Die Seite bleibt beim drucken leer. Gibt es eine Möglichkeit, die Angabe mit dem * (Also alle Elemente ausblenden) für eine bestimmte ID oder CLASS zu überschreiben ?
Blende nur die Elemente aus, die nicht sichtbar sein sind, aber keinesfalls die Vorfahrenelemente der Elemente, die sichtbar bleiben sollen.
cu,
Andreas