Druck von Tabellen bzw. teilen einer Html
Fazerfighter
- javascript
Hallo erstmal
soll einem Kollegen bei seiner Homepage helfen.
kenn mich normal relativ gut aus.
Aber sowas is auch fast komplettes neuland für mich.
Und zwar es sieht wie folgt aus.
Es gibt eine seite mit internen Ankern
Die Anker sind in Tabellen.
nun meine Frage ist es möglich die Tabelle wo der Anker drinnen ist zu drucken.
Oder geht das nicht. Weil das was ich vom drucken gelesen hab is nur
das man bestimmte sachen zum drucken ausblenden kann.
Aber nicht bestimmte teile einer HTML drucken kann.
wollten es dann so machen das es irgend ein druck befehl gibt der
die tabelle mit dem bestimmten anker dann ausdruckt.
Hoffe ihr kommt mit der Frage stellung klar.
Falls nicht. schreibt bitte.
wäre schön wenn ihr mir da helfen könntet
Hi,
nun meine Frage ist es möglich die Tabelle wo der Anker drinnen ist zu drucken.
Oder geht das nicht.
Tipp: Es existieren mehr zu Interpunktionszwecken angedachte Zeichen, als nur der Punkt.
Weil das was ich vom drucken gelesen hab is nur
das man bestimmte sachen zum drucken ausblenden kann.
Ja dann mach das doch.
Aber nicht bestimmte teile einer HTML drucken kann.
Ueber obiges kann man eben das.
wollten es dann so machen das es irgend ein druck befehl gibt der
die tabelle mit dem bestimmten anker dann ausdruckt.
Du kannst ja auch verschiedene "Ausblendungen" im Druck-Stylesheet ueber verschiedene Klassen o.ae. realisieren.
Beim Anspringen eines Ankers muesstest du dann per JavaScript auch gleichzeitig einem uebergeordneten Element wie bspw. body die "passende" Klasse verpassen.
schreibt bitte.
Hach, das klingt immer so suess nach kleinen Maedchen, die in ihrer Lieblingspferdezeitschrift nach Brieffreundinnen suchen ...
MfG ChrisB
Naja gut
werde ich mal mit CSS versuchen
weiß nur nich ob ich es hin bekomm.
weiß auch nich genau wie das mit den
verschiedenen ausblendungen gemeint ist
aber werde mich weiter durch die weite
welt des html / css schlagen und es schon
irgendwie schaffen, oder gibt es dafür
irgendein fertigen link den man einfügen
kann das man dem druckbefehl dann ein
bestimmten anker zuweißt
danke für die schnelle antwort
auch wenn die letzte zeile unötig ist
@@Fazerfighter:
Es gibt eine seite mit internen Ankern
Die Anker sind in Tabellen.
Lass mich raten: Die Tabellen werden zum Layouten missbraucht? Pfui.
Anyway, es geht ja mit beliebigen Elementen. Angenommen folgende Grundstruktur:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<html
xmlns="http://www.w3.org/1999/xhtml"
xml:lang="und" lang="und"
>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>TEST</title>
<link rel="stylesheet" type="text/css" href="myStyle.css" />
</head>
<body>
<div id="foo">foo</div>
<div id="bar">bar</div>
<div id="baz">baz</div>
</body>
</html>
nun meine Frage ist es möglich die Tabelle wo der Anker drinnen ist zu drucken.
Im Druck-Stylesheet blendest du #foo, #bar, #baz aus und jeweils eines als Nachfahre eines Elements einer entsprechenden Klasse (dies wird 'body' sein) ein:
@media print
{
#foo, #bar, #baz
{
display: none;
}
.foo #foo, .bar #bar .baz #baz
{
display: block;
}
}
Beim Click auf einen Link zu einem seiteninternen Anker wird die Klassenzugehörigkeit des 'body' geändert:
<a href="#foo" onclick="[code lang=javascript]document.body.className = 'foo'; return true;
">foo</a>[/code]
Live long and prosper,
Gunnar
PS: Mit Tabellen wird’s übrigens hässlicher, weil man deren 'display'-Eigenschaft für vernünftige Browser nicht auf 'block', sondern auf 'table' setzen muss. Dass wiederum verstehen dumme IEs nicht; die wollen 'block'. Lässt sich aber mit '* html'-Hack auch lösen.
PPS: Da auf die Art ohne JavaScript gar nichts gedruckt wird, ist es sinnvoll, das Ausblenden von #foo, #bar, #baz nicht so ins Stylesheet zu schreiben, sondern mit JavaScript zu realisieren.
Wer hat sich bloß den Unsinn ausgedacht, dass 'noscript' nicht in 'head' vorkommen darf? Sonst ginge das viel einfacher.
Dank dir
Damit komm ich schon eher vielleicht hin.
werde es mal ausprobieren.
mfg