Maison interface Web js tutoriel Création d'un tableau déroulant avec un en-tête collant et une colonne gelée à l'aide de HTML et CSS

Création d'un tableau déroulant avec un en-tête collant et une colonne gelée à l'aide de HTML et CSS

Dec 26, 2024 am 04:51 AM

Creating a Scrollable Table with a Sticky Header and Frozen Column Using HTML and CSS

Les tableaux sont fondamentaux dans les applications Web pour afficher des données structurées. L'ajout de fonctionnalités telles qu'un en-tête déroulant et des colonnes gelées (collantes) peuvent rendre les tableaux encore plus conviviaux. Dans cet article, nous allons explorer comment créer un tableau avec un en-tête collant et une colonne de gauche figée en utilisant du HTML et du CSS purs.

Exemple de stylo code

Pour voir le code en action, consultez cet exemple en direct sur CodePen :
Cet exemple de code utilise la classe JS pour créer un tableau. Vous pouvez reproduire cela avec n'importe quel framework ou bibliothèque de votre choix.

Principales caractéristiques du tableau

  • En-tête collant : l'en-tête du tableau reste visible en haut lors du défilement vertical.
  • Colonne de gauche gelée : la première colonne reste fixe lorsque vous faites défiler horizontalement.
  • Contenu défilant : le défilement vertical et horizontal est pris en charge.
  • Styles personnalisables : le design de la table est épuré et moderne, avec des rayures zébrées et des effets de survol.

Structure HTML

Nous utilisons une structure de table simple avec un pour l'en-tête et un pour les lignes. Le tableau est enveloppé dans un div pour le défilement. Voici le code :

<div>



<h2>
  
  
  CSS for Sticky Header and Frozen Column
</h2>

<p>Here’s the CSS that makes the magic happen:<br>
</p>

<pre class="brush:php;toolbar:false">/* General styles */
body {
  font-family: Arial, sans-serif;
}

/* Scrollable container */
.table-container {
  border: 1px solid #e5e7eb;
  border-bottom: none;
  overflow: auto; /* Enables both horizontal and vertical scrolling */
  height: 400px; /* Limits table height for vertical scrolling */
}

/* Table layout */
.table {
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed; /* Ensures consistent column widths */
}

/* Table cells and headers */
.table th,
.table td {
  padding: 8px;
  text-align: center;
  border: 1px solid #e5e7eb;
}

/* Frozen first column */
.table td:nth-child(1),
.table th:nth-child(1) {
  background: red; /* Highlighted background for frozen column */
  position: sticky;
  left: 0; /* Ensures the column stays on the left */
  z-index: 5; /* Keeps the column above other cells */
  color: white;
}

/* Add higher z-index for header */
.table th:nth-child(1) {
  z-index: 6;
}

/* Sticky header */
.table th {
  background-color: #1e3a8a;
  color: white;
  font-size: 14px;
  font-weight: bold;
  position: sticky;
  top: 0; /* Makes the header stick to the top */
  z-index: 2; /* Keeps the header above the table body */
}

/* Styling for table body */
.table td {
  font-size: 14px;
  color: #6b7280;
}

/* Zebra striping for rows */
.table tr:nth-child(odd) {
  background-color: #f9fafb;
}

/* Hover effect for rows */
.table tr:hover {
  background-color: rgba(14, 116, 144, 0.1);
}

/* No data row styling */
.no-data {
  text-align: center;
  font-size: 14px;
  color: #9ca3af;
}

Copier après la connexion

Expliquer le CSS

Conteneur déroulant :

La classe .table-container ajoute overflow: auto pour activer le défilement horizontal et vertical. La propriété height: 400px limite la hauteur du tableau, garantissant un défilement vertical pour les ensembles de données plus volumineux.

En-tête collant :

Les propriétés position: sticky et top: 0 sont appliquées aux éléments pour garantir que l'en-tête reste visible lors du défilement vertical.
z-index : 2 garantit que l'en-tête est affiché au-dessus du corps du tableau.

Colonne de gauche gelée :

La première colonne est stylisée à l'aide des sélecteurs nth-child(1) pour et .
Les propriétés position : sticky et left : 0 garantissent que la colonne reste en place lors du défilement horizontal.
Les valeurs de l'index z différencient la cellule (5) et l'en-tête (6) de la colonne pour garantir une superposition appropriée.

Mise en surbrillance de la colonne gelée :

La couleur d'arrière-plan de la colonne gelée est définie sur rouge, avec du texte blanc pour une meilleure visibilité. Vous pouvez le personnaliser en fonction de vos préférences de conception.

Comment cela fonctionne ensemble

Lorsque vous faites défiler verticalement, la position : l'en-tête collant reste en haut du conteneur .table.
Lors du défilement horizontal, la colonne la plus à gauche reste fixe, créant un effet de colonne figée.
La combinaison de overflow: auto et position: sticky garantit que la table reste fonctionnelle et conviviale sur les deux axes.

Améliorations que vous pouvez ajouter

Ajustements réactifs :
Utilisez des requêtes multimédias pour ajuster la largeur des colonnes et la disposition des tableaux pour les écrans plus petits.

Chargement de contenu dynamique :

Utilisez JavaScript pour récupérer et remplir les lignes de manière dynamique pour des ensembles de données plus volumineux.

Fonctionnalités interactives :

Ajoutez des événements de clic sur une ligne, un filtrage ou un tri à l'aide de JavaScript pour améliorer les fonctionnalités.

Pensées finales

En utilisant la norme

et quelques lignes de CSS, nous avons créé un tableau puissant et réactif avec un en-tête collant et une colonne de gauche figée. Cette approche est légère, facile à mettre en œuvre et fonctionne de manière transparente sur les navigateurs modernes.

Que vous créiez des tableaux de bord, affichiez des rapports ou manipuliez de grands ensembles de données, cette méthode garantit une conception épurée et professionnelle qui est également conviviale. Essayez-le et dites-moi comment cela fonctionne pour votre projet ! ?

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

JavaScript est-il difficile à apprendre? JavaScript est-il difficile à apprendre? Apr 03, 2025 am 12:20 AM

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

L'évolution de JavaScript: tendances actuelles et perspectives d'avenir L'évolution de JavaScript: tendances actuelles et perspectives d'avenir Apr 10, 2025 am 09:33 AM

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

See all articles