28213 sujets

CSS et mise en forme, CSS3

Bonjour,

Je me pose une petite question quant au nommage des classes.
J'ai un tableau avec des rowspans, ce tableau est issue d'une BDD et l'utilisateur doit pouvoir sélectionner plusieurs ensemble de lignes (ensemble de lignes = quand un utilisateur clique sur une ligne simple, c'est toutes les lignes sur la hauteur du rowspan qui sont selectionnées.
Pour l'instant j'appelle la classe de chaque ligne d'un ensemble "ligne_1 , ligne_2 , ..."
rowspan 1 : ligne_1
ligne_1
ligne_1
rowspan 2 : ligne_2
ligne_2
etc
comme ça je peux appliquer des styles sur les lignes composant cet ensemble (rowspan). Le problème c'est que quand je dois récupérer des valeur dans mon tableau, je dois passer par des script qui récupère la ligne puis l'ensemble pour trouver la cellule ou est appliqué le rowspan. Bref c'est un peu fastidieux.

Je me demandais donc si il était correct ou interdit de passer la valeur de ma 1ere cellule (où est appliqué le rowspan) en nom de classe de l'ensemble des lignes qui constituent le rowspan.
Par exemple pour l'instant j'ai l'ensemble qui a la classe "ligne_1", si la 1ere cellule de cet ensemble vaut "Thierry" est-il possible de remplacer "ligne_1" par "Thierry" ou est-ce déconseillé?

Merci.
Modifié par rovalf (27 Jul 2015 - 08:52)
Bonjour
Dans ce genre de situation il me semble préférable de regrouper les lignes en autant de "groupes de lignes" par une balise <tbody>, en donnant à chaque <tbody> un id approprié. On peut alors jouer sur l'ensemble de ces lignes par Javascript ou CSS.
Contrairement à ce qu'on trouve dans certains tutoriels, <tbody> n'est pas réservé à l'encadrement de TOUT le corps de TOUTE la table, mais convient très bien pour désigner un groupe de lignes (<tr>) consécutives.
Modifié par PapyJP (27 Jul 2015 - 10:06)
Merci pour votre réponse.

Je ne savait pas qu'il était possible d'utiliser plusieurs <tbody> dans un même tableau. Effectivement c'est bien plus pratique que d'utiliser n "ligne_x". Dans un 1er temps je voulais le faire avec des <div> mais ça ne fonctionnait pas.
Et concernant le nommage, peut-on considérer comme correct le fait de nommer la classe de chaque <tbody> par la valeur de la 1ere cellule (mon rowspan)?
Par exemple si ma cellule ayant mon rowspan à pour valeur "Thierry" est-il possible d'avoir <tbody class="Thierry"> pour faciliter la récupération de la valeur dans des scripts ou vaudrait-il mieux garder un nom plus générique qui restera le même de page en page(comme j'utilise une pagination pour mon tableau) du style <tbody class="groupement_1">?

Merci encore.
Modifié par rovalf (27 Jul 2015 - 11:26)
Je mettrais plutôt
<tbody id="Thierry">

Une classe, c'est quand plusieurs éléments doivent avoir la même présentation. Un id c'est pour designer un élément unique dans une page, ce qui me semble etre le cas selon ce que tu expliques.
Par contre rien n'interdit de mixer les deux: une classe pour la présentation et u. Id pour le comportement.
En effet un id est plus approprié dans mon cas.
Merci beaucoup pour votre aide.

Bonne journée.
Attention, un id doit être unique. S'il y a plusieurs Thierry dans votre table, il faut choisir quelque chose d'autre, par exemple "Thierry_Dupont" ... à condition qu'il n'y ait pas plusieurs Thierry Dupont dans votre population.
Oui bien sûr l'Id est unique. J'avais pris "Thierry" à titre d'exemple mais en réalité l'id est celui extrait de ma base de donnée, il est donc bien unique.

Merci.