J'ai créé une table dans ASPX. Je souhaite masquer l'une des colonnes en fonction de l'exigence, mais il n'y a pas d'attribut comme visible
dans la construction de la table HTML. Comment puis-je résoudre mon problème?
html
asp.net
html-table
utilisateur601367
la source
la source
td:first-child { display:none; }
Vous pouvez utiliser le
nth-child
sélecteur CSS pour masquer une colonne entière:Cela fonctionne sous l'hypothèse qu'une cellule de la colonne N (que ce soit
th
outd
) est toujours le Nième élément enfant de sa ligne.Voici une démo.
Si vous voulez que le numéro de colonne soit dynamique, vous pouvez le faire en utilisant
querySelectorAll
ou tout autre framework présentant des fonctionnalités similaires, commejQuery
ici:Démo avec jQuery
(La solution jQuery fonctionne également sur les navigateurs hérités qui ne prennent pas en charge
nth-child
).la source
vous pouvez aussi utiliser:
La différence entre eux que «caché» cache la cellule mais il contient l'espace mais avec «réduire» l'espace n'est pas tenu comme affichage: aucun. Ceci est important lorsque vous masquez une colonne ou une ligne entière.
la source
visibility: collapse
est conçu spécifiquement pour gérer l'affichage / le masquage des cellules, car il existe une différence lors du recalcul de la largeur / hauteur de la cellule entre ceci etdisplay:none
. Voir developer.mozilla.org/en-US/docs/Web/CSS/visibility#ValuesLa réponse de Kos est presque juste, mais peut avoir des effets secondaires néfastes. C'est plus correct:
CSS (Feuilles de style en cascade) va mettre en cascade des attributs à tous ses enfants. Cela signifie que
*:nth-child(1)
cela masquera le premiertd
de chaquetr
ET masquera le premier élément de tous lestd
enfants. Si l'un de vostd
éléments comporte des boutons, des icônes, des entrées ou des sélections, le premier sera masqué (woops!).Même si vous n'avez actuellement aucun élément qui sera caché, imaginez votre frustration plus tard si vous devez en ajouter un. Ne punissez pas votre futur moi comme ça, ça va être difficile à déboguer!
Ma réponse ne cachera que le premier
td
etth
le touttr
en#myTable
gardant vos autres éléments en sécurité.la source
Les gens de Bootstrap utilisent la
.hidden
classe sur<td>
.la source
Vous pouvez également masquer une colonne à l'aide de l'élément col https://developer.mozilla.org/en/docs/Web/HTML/Element/col
Pour masquer la deuxième colonne d'un tableau:
Problèmes connus: cela ne fonctionnera pas dans Google Chrome. Veuillez voter pour le bogue sur https://bugs.chromium.org/p/chromium/issues/detail?id=174167
la source
utilisez .hideFullColumn dans la table et .hidecol dans th.
la source
Vous pouvez également faire ce que vs dev suggère par programme en attribuant le style avec Javascript en itérant dans les colonnes et en définissant l'élément td à un index spécifique pour avoir ce style.
la source
la source