52 votes

Pourquoi les méthodes cellpacing et cellpadding ne sont-elles pas des styles CSS?

Je ne sais pas pourquoi cela me gène tant, mais lorsque je crée des sites Web, j'essaie toujours de faire tout mon style avec CSS. Cependant, une chose que je ne dois jamais oublier de faire lorsque je travaille avec des tableaux est d’ajouter cellulespacing = "0" et cellpadding = "0"

Pourquoi n'y a-t-il pas de propriété CSS permettant de remplacer ces attributs HTML 4 obsolètes?

64voto

mat Points 5365

Cellspacing :

 table { border-collapse: collapse; }
 

Quant à cellpadding , vous pouvez faire

 table tr td, table tr th { padding: 0; }
 

42voto

flussence Points 5870

mat déjà répondu , mais juste pour être complet:

  • paddingcellpadding
  • border-spacingcellspacing
  • border-collapse → pas d'équivalent HTML

N'oubliez pas que vous pouvez définir des valeurs horizontales et verticales distinctes pour les CSS, par exemple border-spacing: 0 1px .

9voto

Simon_Weaver Points 31141

Eric Myer de la réinitialisation de la feuille de style contient les éléments suivants "reset" de style pour la table :

/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

En outre, TD, TR sont remis à zéro :

thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

La raison pour laquelle je mentionne cela, c'est qu'il a un commentaire "tables encore besoin cellpadding=0'. Je suppose qu'il mettre ce ici pour une raison - sans doute nécessaire par certains navigateurs plus anciens. À en juger par le fait que c'est l'un des très peu de commentaires qu'il a compris je devine son important et qu'il y a une bonne raison pour cela.

Basé sur ce commentaire et ce commentaire seul! - je continuer à utiliser cellspacing="0" dans le balisage, sauf si quelqu'un me dit définitivement (ci-dessous) pourquoi je n'ai pas besoin de. Il pourrait toutefois susceptible d'être inutile dans n'importe quel navigateur moderne qui mérite d'être soutenu ces jours-ci.

0voto

Jimmy Points 35501
table { border-collapse:collapse; }

0voto

Din Points 165

Je suppose que quelqu'un a considéré l'espacement des cellules comme une "mauvaise pratique". D'après ce que je comprends, l'équivalent est inclus dans le standard CSS2 mais IE ne prend pas en charge cette propriété. border-collapse permet de définir l'espacement sur 0. Le remplissage de cellule peut être obtenu en définissant la propriété de remplissage à des éléments TD d'une table.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X