Fermer

janvier 19, 2021

Figer la ligne et la colonne dans un tableau HTML à l'aide de CSS


Une interface utilisateur interactive et facile à utiliser incite toujours l'utilisateur à travailler davantage. Chaque fois qu'une structure grille / table est utilisée pour afficher les données, un scénario courant montre une barre de défilement lorsque les données dépassent une plage visuelle. Lorsque l'utilisateur fait défiler le tableau à l'aide de la barre de défilement, l'en-tête de ligne ou la colonne défile également, ce qui est ennuyeux pour l'utilisateur d'identifier la ligne / colonne.

Pour surmonter cela, nous pouvons simplement figer les lignes et les colonnes d'en-tête (s) basé sur l'exigence, et le reste des données de la grille peut être un scroll, ce qui est très utile à l'utilisateur.

Pour figer la ligne / colonne, nous pouvons utiliser un simple tableau HTML et CSS.

HTML: En HTML, nous pouvons définir la ligne d'en-tête par la balise

ou nous pouvons également utiliser la balise

. L'exemple ci-dessous utilise la balise

. Nous avons également placé le tableau dans l'élément DIV pour voir la barre de défilement horizontale et verticale en définissant la propriété overflow de l'élément DIV.

Sample HTML:

 Sample Html 1

CSS: Des changements majeurs seront apportés au CSS puisque le gel de la ligne / colonne sera géré par CSS. Pour figer la ligne et la colonne, nous devons considérer la balise / sélecteur CSS suivante:

  1. top: Cette propriété est utilisée pour définir la position supérieure de l'élément, pour la ou les lignes d'en-tête (figer la ligne) ceci sera toujours 0.
  1. left: Cette propriété est utilisée pour définir la position gauche de l'élément, pour la première colonne figée, ce sera 0. Pour plus d'une colonne figée, la valeur de la propriété gauche de la colonne (autre que la première colonne) sera être la somme de la largeur totale de la colonne précédente.
  1. position: Cette propriété rend l'élément collant lors du défilement, donc ses valeurs seront toujours "collantes" pour toutes les lignes et colonnes figées.
  1. z-index: Cette propriété définit la priorité de visibilité de la (des) colonne (s) et ligne (s) de gel sur la colonne à défilement. La colonne figée aura une valeur d'index z plus élevée qu'une colonne à défilement.
  1. background-color: La couleur d'arrière-plan garde la colonne déroulante derrière la colonne gelée pendant le défilement. Si la couleur d'arrière-plan n'est pas fournie, la valeur de la cellule (données) ressemblera à un chevauchement avec d'autres valeurs de cellule.

Exemple de CSS:

 Sample Css 2

] Sortie finale:

 Sortie finale 3

 Covid 19

En-tête fixe (rangée du haut):

 En-tête fixe 4

Fixe colonnes (2 premières colonnes):

 Colonnes fixes 5

" Position: Sticky Le positionnement collant est un hybride de positionnement relatif et fixe. L'élément est traité comme positionné relative jusqu'à ce qu'il franchisse un seuil spécifié, point auquel il est traité comme positionné fixe. «

Pour clarifier davantage le positionnement collant, prenons un exemple d'en-tête collant du tableau dans une page.

En-tête collant:

Parfois, nous avons l'obligation d'afficher le tableau à l'intérieur d'une longue page qui a une barre de défilement verticale. Mais lorsque nous faisons défiler la page, la table est également défilée avec un en-tête qui n'est pas utile pour les utilisateurs d'identifier l'en-tête de colonne. Pour surmonter ce problème, nous pouvons coller l'en-tête du tableau jusqu'à ce que le tableau soit en train de défiler (coller l'en-tête jusqu'à ce que la dernière ligne du tableau soit visible par l'utilisateur).

Exemple:

 Sticky Header Ex 6

HTML:

 Html 7

CSS:

 Css 8

Prise en charge du navigateur

Liste de prise en charge du navigateur de balises 'Position: sticky' (source: www.caniuse.com)

 Positionsticky 9

En-tête collant dans Internet Explorer

La balise collante ne fonctionnera pas dans le navigateur Internet Explorer car IE ne prend pas en charge la position: balise CSS collante, le reste du navigateur principal comme Chrome, Firefox, Edge, etc. sont bien supportés.

Pour rendre l'en-tête collant dans le navigateur IE, il existe des solutions de contournement qui utilisent JavaScript avec CSS pour y arriver. Voir les liens ci-dessous:

https://levelup.gitconnected.com/how-to-make-position-sticky-work-in-ie-build-your-own-css-polyfill-with-javascript -f42f0a3cc9ef

https://css-tricks.com/stickybits-alternative-position-sticky-polyfills/

À propos de l'auteur

Manish a 13+ années d'expérience en développement de logiciels, principalement dans les technologies Microsoft. Il travaille actuellement en tant que consultant technique principal dans l'équipe PCS.

Plus de cet auteur




Source link