Gunnar Bittersmann: Druck von Tabellen bzw. teilen einer Html

Beitrag lesen

@@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.

--
Flughafen in Tempelhof
findet jeder Hempel doof.