Maison > interface Web > tutoriel CSS > CSS seul peut-il créer un tableau défilant compatible avec plusieurs navigateurs avec des en-têtes fixes ?

CSS seul peut-il créer un tableau défilant compatible avec plusieurs navigateurs avec des en-têtes fixes ?

Patricia Arquette
Libérer: 2024-12-06 13:39:17
original
374 Les gens l'ont consulté

Can CSS Alone Create a Cross-Browser Compatible Scrollable Table with Fixed Headers?

Tableau défilant uniquement CSS avec en-têtes fixes

Question :

Existe-t-il une solution CSS uniquement pour créer un tableau déroulant tableaux avec en-têtes fixes multi-navigateurs conforme ?

Exigences :

  • Maintenir l'alignement des colonnes entre l'en-tête, le pied de page et les lignes de contenu
  • Gardez l'en-tête et le pied de page fixes pendant que le le contenu défile verticalement
  • Aucun jQuery ou JavaScript requis
  • Utilisez uniquement les éléments liés aux tables tags (table, thead, tbody, tr, th, td)

Solution utilisant la position : Sticky :

Remarque de compatibilité : Vérifiez la prise en charge de position:sticky avant d'utiliser cette solution.

position:sticky positionne un élément par rapport à l'ancêtre de défilement le plus proche ou au fenêtre s'il n'y a pas d'ancêtres défilants. Ce comportement correspond à l'en-tête collant souhaité.

Cependant, l'attribution de position:sticky à

, ou les balises rencontrent des problèmes dans divers navigateurs. Au lieu de cela, attribuez la propriété sticky à
cellules dans un élément wrapper qui définit le débordement de défilement.

Code :

div {
  display: inline-block;
  height: 150px;
  overflow: auto;
}

table th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
}

/* Styling */
table {
  border-collapse: collapse;
}

th {
  background-color: #1976D2;
  color: #fff;
}

th,
td {
  padding: 1em .5em;
}

table tr {
  color: #212121;
}

table tr:nth-child(odd) {
  background-color: #BBDEFB;
}
Copier après la connexion
<div>
  <table border="0">
    <thead>
      <tr>
        <th scope="col">head1</th>
        <th scope="col">head2</th>
        <th scope="col">head3</th>
        <th scope="col">head4</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>row 1, cell 1</td>
        <td>row 1, cell 2</td>
        <td>row 1, cell 2</td>
        <td>row 1, cell 2</td>
      </tr>
      <!-- additional rows omitted for brevity -->
    </tbody>
  </table>
</div>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal