Gunnar Bittersmann: Spalten ausblenden

Hello out there!

Ich brauche eine Tabelle mit festen Spaltenbreiten; ist sie für den Viewport zu breit, sollen die Spalten rechts ausgeblendet werden oder die Tabelle soll sie rechts aus dem Bild rauslaufen – ohne dass ein Scrollbar erscheint.

Firefox wendet 'display: none' nicht auf 'col'-Elemente an. Auch 'width: 0' zeigt keine Wirkung; er macht die Zellen mindestens so breit, dass deren Inhalt zu sehen ist, selbst in Verbindung mit 'overflow: hidden' und auch 'table-layout: fixed' fürs 'table'-Element.

Kann ich den nicht irgendwie dazu bewegen, eine Tabellenspalte nicht anzuzeigen, außer es für jede Zelle dieser Spalte anzugeben?

Oder anders: Wie lasse ich die Tabelle rechts aus dem Viewport rauslaufen, ohne dass ein horizontaler Scrollbar erscheint? Mein Firefox will die ganze Tabelle darstellen und macht die Zellen schmaler – trotz explizit angegebener Breite.

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  1. Hallo Gunnar,

    Kann ich den nicht irgendwie dazu bewegen, eine Tabellenspalte nicht anzuzeigen, außer es für jede Zelle dieser Spalte anzugeben?

    Genau das war meine Erfahrung, weshalb ich auch Javascript in Verbindung mit visibility, width, border-width und border-bottom-style bemühe.

    http://lernspielwiese.de/klapptabelle/spaltenfilter.html

    Mit den Rows- und Cells-Collections des TABLE- bzw. des TR-HTML-Objekts könnte man es noch eleganter lösen.

    Du könntest bei Firefox natürlich auch einmal mit den Pseudoklasssen

      
    table.klappSpalten tr td:firstChild  
    table.klappSpalten tr td:secondChild  
    /* ... */  
    table.klappSpalten tr td:lastChild  
    
    

    experimentieren.

    Das wird allerdings in Opera nicht funktionieren.

    Gruß Gernot

    1. Hallo nochmal,

      ich meinte natürlich:

        
      table.klappSpalten tr td:first-child  
      table.klappSpalten tr td:second-child  
      /* ... */  
      table.klappSpalten tr td:last-child  
      
      

      Gruß Gernot

      1. Hello out there!

        ich meinte natürlich:

        table.klappSpalten tr td:first-child
        table.klappSpalten tr td:second-child

        Meinst du wirklich? ;-)

        ':second-child' gibt’s nicht. 'td:first-child+td' würde dies selektieren.

        (In CSS 3 gibt’s die Pseudoklasse ':nth-child()'. [CSS3-SELECTORS])

        Ist für mich keine Lösung, da ich mehrere Spalten ausblenden muss und der Browser beim Zählen dann irgendwie durcheinander kommt.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        1. Hallo Gunnar,

          ':second-child' gibt’s nicht. 'td:first-child+td' würde dies selektieren.

          Ich meine aber, schon beobachtet zu haben, dass Firefox :second-child usw. durchaus kennt, auch wenn es das nach Standard gar nicht gibt.

          Colspan-Attribute darfst du bei dieser Variante freilich nicht benutzen, sonst ist klar, dass der Browser durcheinander kommt.

          Gruß Gernot