Dans le but d'afficher les données de manière organisée , vous souhaitez créer un tableau HTML comportant à la fois un en-tête fixe et une première colonne fixe. Pourtant, votre exploration a découvert une gamme de solutions qui dépendent de JavaScript ou de jQuery, introduisant des inconvénients potentiels sur les navigateurs mobiles en raison d'un comportement de défilement loin d'être idéal. Par conséquent, votre recherche se concentre désormais sur la recherche d'une solution CSS pure.
Heureusement, la propriété position : sticky, prise en charge dans les versions modernes de Chrome, Firefox et Edge, offre un moyen de obtenir le comportement souhaité. Vous pouvez le combiner avec la propriété overflow: scroll pour créer un tableau dynamique avec des éléments d'en-tête et de colonne fixes.
Marquage HTML :
<div class="container"> <table> <thead> <tr> <th></th> <th>headheadhead</th> <th>headheadhead</th> <th>headheadhead</th> <th>headheadhead</th> <th>headheadhead</th> <th>headheadhead</th> <th>headheadhead</th> </tr> </thead> <tbody> <tr> <th>head</th> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> </tr> <tr> <th>head</th> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> </tr> <tr> <th>head</th> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> </tr> <tr> <th>head</th> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> </tr> <tr> <th>head</th> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> </tr> <tr> <th>head</th> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> <td>body</td> </tr> </tbody> </table> </div>
CSS :
div { max-width: 400px; max-height: 150px; overflow: scroll; } thead th { position: -webkit-sticky; /* for Safari */ position: sticky; top: 0; } tbody th { position: -webkit-sticky; /* for Safari */ position: sticky; left: 0; } thead th:first-child { left: 0; z-index: 2; } thead th { background: #000; color: #FFF; z-index: 1; } tbody th { background: #FFF; border-right: 1px solid #CCC; box-shadow: 1px 0 0 0 #ccc; } table { border-collapse: collapse; } td, th { padding: 0.5em; }
Cette implémentation vous permet de faire défiler à la fois verticalement et horizontalement tout en gardant l'en-tête et la première colonne en place, offrant une expérience utilisateur améliorée pour visualiser les données tabulaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!