2017-08-16 1 views
0

Je suis bloqué par la fixation de la largeur de la deuxième colonne de ma table html.Largeur de la colonne du tableau lorsque l'argument rowspan et table-layout sont fixes

Voici une printscreen de ma table:

Table Image

est sous le code CSS:

#RevenueMTable tbody, #RevenueMTable thead { 
display: block; 
} 

#RevenueMTable { 
    width: 1115px; 
    table-layout: fixed !important; 
} 

#RevenueMTable tbody td:first-child 
{ 
    width: 138px !important; 
} 

#RevenueMTable tbody td:not(:first-child) 
{ 
    width: 72px !important; 

} 

#RevenueMTable tbody 
{ 
    overflow: auto; 
    height: 400px; 

} 

Le problème est que ma première colonne a une rowspan de 4 lignes. Par conséquent, par exemple, la cellule contenant "COST" est le premier élément TD dans l'étiquette de rangée et est donc également appliquée à une largeur de 138px, bien qu'elle soit considérée comme la deuxième colonne.

Table HTML code

Comment puis-je résoudre ce problème?

I Tried application largeur de la définition de la colonne comme suit, mais ne fonctionne pas non plus:

$('<col style="width:138px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"> <col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px">').insertBefore($("#RevenueMTable thead")) 
+0

pouvez-vous s'il vous plaît fournir le HTML aussi pour une résolution plus rapide, si possible un jsfiddle soulignant le problème. –

Répondre

0

Vous avez déjà des cours sur vos éléments de TD. Vous pouvez cibler la colonne directement en utilisant ceux-ci. J'ai changé l'ordre des règles afin qu'elles se substituent correctement en fonction de la spécificité.

#RevenueMTable tbody td 
{ 
    width: 72px !important; 

} 

#RevenueMTable tbody td.column0 { 
    width: 138px !important; 
} 
+0

vous avez raison, c'était le chemin aller. Merci! – user1186098

0
#RevenueMTable tbody td:nth-child(2) 
    { 
     width: 72px !important; 
    } 
+1

Pouvez-vous expliquer brièvement pourquoi cela résout le problème OP? – wahwahwah

+0

td: nth-child (2) signifie la deuxième colonne si vous voulez spécifier la troisième colonne ce sera comme #RevenueMTable tdt td: nth-child (3) et ainsi de suite. –

+1

S'il vous plaît mettre à jour * votre réponse * avec la brève explication :) Sur SO, les réponses au code seulement fréquemment sont marqués pour être "Low Quality" et sont modérés (d'où, pourquoi j'ai vu votre réponse.) Souvent, les réponses fournir suffisamment d'informations/contexte pour vraiment aider l'utilisateur (ou futurs visiteurs du site.) – wahwahwah