[CSS]Table scrollable avec colonne fixe
Et si on oubliait un peu le JavaScript et que l'on adoptait le positionnement sticky pour rendre nos <table> scrollables, bon pour le coup on oublie également IE.
La réalisation d'une <table> scrollable en devient des plus rudimentaire.
Aperçu
| Prénom | Nom | Date | Entreprise | Fonction | Adresse | Adresse mail |
|---|---|---|---|---|---|---|
| Christoph | Casbourne | 09/13/1957 | Services | Tejon Ranch Co | 00281 Gina Terrace | ccasbourne0@oracle.com |
| Truda | Bertelmot | 11/11/1985 | Accounting | Clipper Realty Inc. | 32178 Parkside Center | tbertelmot1@domainmarket.com |
| Dallon | Goulding | 03/16/1977 | Research and Development | Goldman Sachs Group, Inc. (The) | 1 Prairieview Road | dgoulding2@umn.edu |
| Yoshiko | Danielsky | 07/10/1997 | Business Development | FB Financial Corporation | 47040 Spenser Road | ydanielsky3@tmall.com |
| Berte | Dmitrienko | 11/17/1995 | Marketing | Argan, Inc. | 44640 Hoffman Way | bdmitrienko4@nasa.gov |
| Valentijn | Meadmore | 08/02/1993 | Human Resources | MGM Resorts International | 6 Monica Center | vmeadmore5@ed.gov |
| Suzy | Flewett | 10/25/1980 | Research and Development | Ceragon Networks Ltd. | 894 Forest Dale Point | sflewett6@icio.us |
| Mordecai | Jerrams | 10/13/1965 | Training | Silicom Ltd | 2 Hallows Pass | mjerrams7@cnet.com |
| Claus | Samwyse | 11/25/1974 | Accounting | Verizon Communications Inc. | 38239 Gina Junction | csamwyse8@xing.com |
| Rafaelia | Pedrol | 04/18/1975 | Research and Development | Schneider National, Inc. | 97 Everett Plaza | rpedrol9@google.es |
| Lita | Lisimore | 06/08/1988 | Product Management | Simmons First National Corporation | 2081 Birchwood Street | llisimorea@wiley.com |
| Noak | McPeice | 12/06/1974 | Product Management | Eyegate Pharmaceuticals, Inc. | 7315 Susan Point | nmcpeiceb@discovery.com |
| Craggy | Portugal | 12/18/1989 | Sales | Roper Technologies, Inc. | 27 Brown Hill | cportugalc@netscape.com |
| Madelle | Bartoszinski | 12/20/1958 | Legal | Honeywell International Inc. | 13648 Corry Lane | mbartoszinskid@ustream.tv |
| Frasquito | Harriagn | 09/24/1998 | Accounting | ASB Bancorp, Inc. | 2 2nd Pass | fharriagne@vistaprint.com |
| Betteann | Freegard | 05/05/1954 | Marketing | Brookfield Property Partners L.P. | 3434 South Pass | bfreegardf@linkedin.com |
| Jacinda | Sheepy | 10/22/1989 | Engineering | Landmark Infrastructure Partners LP | 21034 Ryan Center | jsheepyg@diigo.com |
| Sigismund | Arnholtz | 09/16/1965 | Research and Development | Ellington Residential Mortgage REIT | 6 Superior Road | sarnholtzh@vinaora.com |
| Myrle | Cromack | 05/07/1951 | Research and Development | First Cash, Inc. | 62591 Emmet Drive | mcromacki@networksolutions.com |
| Zorina | Momford | 11/01/1961 | Marketing | Cimpress N.V | 38 Buell Park | zmomfordj@mysql.com |
Structure HTML
La structure utilisée est on ne peut plus standard, il nous faut simplement mettre un conteneur à la <table> pour obliger celle-ci à scroller.
<div class="table-conteneur">
<table class="table-scrollable">
<thead>
<!-- le contenu de l'entête -->
</thead>
<tbody>
<!-- le contenu de la table -->
</tbody>
</table>
</div>
CSS pour effet de scroll
C'est surtout la valeur des z-index, l'empilement donc, qui est importante.
Il faut penser à mettre une couleur de fond sur les éléments en position sticky pour qu'ils restent proprement visibles.
Le reste du CSS n'est que cosmétique.
Voilà c'est terminé, pas trop déçu ?
Désagréments
- FireFox peut peiner lors du suivi des scrolls, voir Effets liés au défilement sur MDN (web.archive..org) ;
- et sûrement bien d'autres.
Ressources
- Propriété CSS
positionsur MDN ; - Compatibilité
position:stickysur caniuse.com.