Question

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, si je travaille avec des tableaux, il faut toujours que je garde en tête d'ajouter cellulespacing = " 0 " et cellpadding = "0"

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

Était-ce utile?

La solution

Espacement de cellule :

table { border-collapse: collapse; }

En ce qui concerne cellpadding , vous pouvez le faire

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

Autres conseils

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

  • padding & # 8594; cellpadding
  • espacement de bordure & # 8594; cellpacing
  • border-collapse & # 8594; pas d'équivalent HTML

Il convient également de noter que vous pouvez définir des valeurs horizontales et verticales distinctes pour les valeurs CSS, par exemple. border-spacing: 0 1px .

La réinitialiser la feuille de style d'Eric Myer contient le style de réinitialisation suivant pour le tableau:

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

De plus, TD et TR sont réinitialisés:

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 le mentionne est qu’il a un commentaire "les tables ont encore besoin de cellpadding = 0". Je suppose qu'il a mis cela ici pour une raison - probablement nécessaire par certains anciens navigateurs. À en juger par le fait qu’il s’agit de l’un des rares commentaires qu’il a inclus, je suppose que c’est important et qu’il ya une bonne raison à cela.

Sur la base de ce commentaire - et de ce commentaire seul! - Je continue à utiliser cellspacing = " 0 " dans le balisage à moins que quelqu'un ne me dise définitivement (ci-dessous) pourquoi je n'en ai pas besoin. Il pourrait toutefois être inutile dans les navigateurs modernes dignes d’être pris en charge ces jours-ci.

table { border-collapse:collapse; }

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 la norme CSS2, mais IE ne prend pas en charge cette propriété. border-collapse permet de définir l'espacement sur 0. Le remplissage des cellules peut être réalisé en définissant la propriété de remplissage des éléments TD d'une table.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top