2010-11-19 4 views
1

quelqu'un peut-il m'aider à créer des en-têtes fixes sur une table en utilisant css seulement (pas de js). Il doit prendre en charge les données dynamiques car les tailles de colonnes proviennent d'une base de données. Seulement besoin de travailler dans ie7/8. CheersCSS Table d'en-têtes fixe dans ie

+0

J'ai overflow essayé de placer sur le tbody, mais ne semble pas travailler dans – nzyme

Répondre

0

Si vous décidez d'aller avec JS (comme je suis sûr que ce n'est guère possible avec CSS pure), vous pouvez essayer mon script. Voir un . C'est un navigateur croisé et optimisé pour les performances.

0

Il me semble que vous essayez de créer une table où vous pouvez faire défiler la partie du corps et faire en sorte que la première rangée (d'en-tête) ne bouge pas. Cela peut être fait en ayant une table avec la ligne d'en-tête, et une seconde placée à l'intérieur d'un <div style="max-height: 400px; overflow: auto;"> - notez que cela ne fonctionnera qu'avec des colonnes de largeur fixe, sauf si vous utilisez JavaScript.

Si ce n'est pas ce que vous essayez d'atteindre, veuillez ne pas tenir compte de ce message.

+0

-à-dire au lieu d'utiliser deux tables, vous pouvez utiliser et – MatTheCat

+0

@MatTheCat: Pouvez-vous donner une démo comment garder la 'thead' dans une position fixe? –

+0

Salut Kolink, oui c'est ce que j'essaye de réaliser, cependant les colonnes ne sont pas fixes et je ne voudrais pas utiliser de javascript – nzyme

0

Voilà donc ce que je pensais:

<table> 
    <thead> 
     <tr> 
      <th>Value</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     <tr><td>1</td></tr> 
     </tr> 
    </tbody> 
</table> 

tbody { 
    max-height:100px; 
    overflow:auto; 
    position:absolute; 
} 
tr td:last-child { /* do horizontal scrollbar useless */ 
    padding-right:1em; 
} 

EDIT: Raaah il fonctionne sur IE8 mais pas IE7 (testé avec IE9 bêta), il semble IE7 applique la règle de hauteur <td> éléments!

+0

Merci, mais cela ne fonctionne pas en IE8 pour moi – nzyme

+0

Avez-vous IE8 vraie version? – MatTheCat

+0

Je suppose que vous voulez dire une version non bêta, alors oui – nzyme