Gernot Back: Tabelle teilweise - Version 3

Beitrag lesen

Hallo Cybaer,

Aus Coding: Darstellungswechsel - Un-/Sichtbare Elemente: Ein-/Ausklappen, Verstecken, Transparenz, Farbe:

ich glaube ich sollte dein Schatzkästlein mal systematisch durchwühlen, das lohnt sich ja wirklich.

Ich habe jetzt mal noch eine neue Variante geschrieben, die hoffentlich alle bisherigen Anregungen in diesem Thread berücksichtigt. Dabei sind der JS- und der HTML-Code auch deutlich schlanker geworden. Vor allem ist jetzt auch semantisch gesehen mehr Logik drin, weil die Überschriften jetzt mit zu den Tabellenbereichen gehören, die sie bezeichnen. Gemeinsam ein- und ausgeblendet werden jetzt die td-Nachfahren der jeweiligen tbody-Elemente, deren th-Nachfahren bleiben unberührt.

Allerdings gibt es jetzt mehr CSS. Erstaunlicherweise braucht der IE hier dennoch keine Extrawurst, jedenfalls nicht, was die Display-Eigenschaft angeht. Da er "table-cell" ja meines Wissens nicht versteht, nimmt er halt einfach das, was bei ihm fälschlicherweise als Default-Wert gilt:"block", den er anders als die anderen Browser bei Tabellenzellen dann aber doch wie "table-cell" darstellt.

Für die Borders bei den th-Zellen musste ich dem IE allerdings doch eine Extrawurst braten, sonst wäre es mit dem Collapsing nichts gewesen und ich hätte bei zusammengefalteten Bereichen unerwünschte Abstände gehabt. Für die anderen Browser hätte es eines Typselektors für "th" gar nicht bedurft:

  
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">  
<html>  
<head>  
<title>Tabellenteile wegblenden - Version 3</title>  
<meta name="author" content="Gernot Back">  
<meta name="generator" content="Ulli Meybohms HTML EDITOR">  
<style type="text/css">  
<!--  
[code lang=css]  
table {  
  width:100%;  
  border-collapse:collapse;  
  border:solid 1px #000000;  
}  
  
th {  
  border-top:solid 1px #000000;  
}  
  
tbody.hide td{  
  display:none;  
}  
  
tbody.show td{  
  display:table-cell;  
  border:solid 1px #000000;  
}  

-->
</style>
<script type="text/javascript" language="JavaScript">
<!--

  
function init () {  
  var grupos = document.getElementsByTagName('tbody');  
  for (i=0; i<grupos.length; i++ ) {  
     grupos[i].className='hide';  
  }  
}  
  
function einaus (was) {  
  var gruppe = was.parentNode.parentNode.parentNode;  
  if(gruppe.className=='hide') {  
    gruppe.className='show';  
  } else {  
    gruppe.className='hide';  
  }  
}  

//-->
</script>
</head>
<body onLoad="init()">
<table>
<tbody>
<tr>
<th colspan="2"><a href="#" onClick="einaus(this)">Gruppe A</a></th>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2"><a href="#" onClick="einaus(this)">Gruppe B</a></th>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2"><a href="#" onClick="einaus(this)">Gruppe C</a></th>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</body>
</html>
[/code]

Gruß Gernot

0 54

Tabelle teilweise ausblenden

Kalle_Worms
  • css
  1. 0
    Eternius
  2. 1
    Gernot Back
    1. 0
      Dennis
      1. 1
        Tim Tepaße
        1. 0
          Dennis
          1. 0
            Christian Seiler
            1. 0
              Dennis
      2. 0
        Sebastian Salzgeber
        1. 1
          Tim Tepaße
    2. 0
      Gernot Back
      1. 0
        molily
      2. 0
        Cybaer
        • javascript
        1. 0

          Tabelle teilweise - Version 3

          Gernot Back
          • css
          1. 0

            Tabelle teilweise - Version 4

            Cybaer
            1. 0
              Gernot Back
              1. 0
                Cybaer
            2. 0
              Ingo Turski
              • zu diesem forum
              1. 0
                Cybaer
                1. 0
                  Ingo Turski
                  1. 0
                    Christian Kruse
                  2. 0
                    Cybaer
                    1. 0
                      Ingo Turski
                      1. 0
                        Cybaer
                        1. 0
                          Ingo Turski
                          1. 0
                            Cybaer
                            1. 0
                              Ingo Turski
                              1. 0
                                Cybaer
              2. 0

                Syntax-Highlighting im Moment generell defekt?

                Gernot Back
                1. 1
                  Christian Kruse
                  1. 0
                    MudGuard
  3. 1
    Tim Tepaße
    • html
    1. 0
      Gernot Back
      1. 0
        Ashura
      2. 1
        Tim Tepaße
        1. 0
          Gernot Back
          1. 0

            Codeansicht

            Ingo Turski
            • zu diesem forum
            1. 1
              Tim Tepaße
              1. 0
                Ingo Turski
              2. 0
                Gernot Back
                1. 0
                  Tim Tepaße
                  1. 0
                    Gernot Back
                    1. 0
                      Ashura
                    2. 0
                      MudGuard
                      1. 0
                        Gernot Back
                        1. 0
                          Christian Kruse
                          1. 0
                            MudGuard
                            1. 0
                              Christian Kruse
            2. 0
              Christian Kruse
  4. 0
    Gunnar Bittersmann
    1. 0
      Gernot Back
      • javascript
      1. 0
        Cybaer
    2. 0
      Kalle_Worms
      1. 0
        Gunnar Bittersmann