Dans un tableau HTML, le cellpadding
et cellspacing
peut être défini comme ceci:
<table cellspacing="1" cellpadding="1">
Comment faire la même chose en utilisant CSS?
html
css
html-table
alignment
kokos
la source
la source
width:auto
ensuiteborder-collapse
peuvent ne pas fonctionner comme prévu.Réponses:
Les bases
Pour contrôler le "cellpadding" en CSS, vous pouvez simplement l'utiliser
padding
sur des cellules de tableau. Par exemple, pour 10 pixels de "cellpadding":Pour "cellspacing", vous pouvez appliquer la
border-spacing
propriété CSS à votre table. Par exemple, pour 10 pixels de "cellule d'espacement":Cette propriété permettra même un espacement horizontal et vertical séparé, ce que vous ne pourriez pas faire avec un "espace cellulaire" à l'ancienne.
Problèmes dans IE <= 7
Cela fonctionnera dans presque tous les navigateurs populaires, à l'exception d'Internet Explorer jusqu'à Internet Explorer 7, où vous n'avez presque pas de chance. Je dis «presque» car ces navigateurs prennent toujours en charge la
border-collapse
propriété, qui fusionne les bordures des cellules de tableau adjacentes. Si vous essayez d'éliminer l'espacement des cellules (c'est-à-direcellspacing="0"
) , celaborder-collapse:collapse
devrait avoir le même effet: pas d'espace entre les cellules du tableau. Cette prise en charge est boguée, cependant, car elle ne remplace pas uncellspacing
attribut HTML existant sur l'élément de table.En bref: pour les navigateurs non Internet Explorer 5-7,
border-spacing
vous gère. Pour Internet Explorer, si votre situation est parfaite (vous voulez 0 espace de cellule et votre table ne l'a pas déjà défini), vous pouvez utiliserborder-collapse:collapse
.Remarque: Pour un excellent aperçu des propriétés CSS que l'on peut appliquer aux tableaux et pour quels navigateurs, consultez cette fantastique page Quirksmode .
la source
Défaut
Le comportement par défaut du navigateur équivaut à:
Cellpadding
Définit la quantité d'espace entre le contenu de la cellule et la paroi de la cellule
Espacement cellulaire
Contrôle l'espace entre les cellules du tableau
Tous les deux
Les deux (spécial)
Essayez-le vous-même!
Ici vous pouvez trouver l'ancienne HTML d' y parvenir.
la source
la source
cellspacing=0
équivalent. L'équivalent decellspacing=1
est complètement différent. Voir la réponse acceptée.table td
ettable th
seulement êtretd
etth
respectivement? Cela fonctionne de toute façon, mais un sélecteur plus petit signifie une correspondance légèrement plus rapidetable > tr > td
ettable > tr > th
. C'est presque aussi rapide quetr
etth
, et il est garanti de fonctionner si vous avez une table imbriquée. Just my 2ctable
sélecteur est-il nécessaire? IIRC, a<td>
est invalide sauf à l'intérieur de a<tr>
.La définition de marges sur les cellules d'un tableau n'a pas vraiment d'effet à ma connaissance. Le véritable équivalent CSS pour
cellspacing
estborder-spacing
- mais cela ne fonctionne pas dans Internet Explorer.Vous pouvez utiliser
border-collapse: collapse
pour définir de manière fiable l'espacement des cellules à 0, comme mentionné, mais pour toute autre valeur, je pense que la seule façon inter-navigateur est de continuer à utiliser l'cellspacing
attribut.la source
border-collapse
ne fonctionne dans IE 5-7 que si la table n'a pas déjà uncellspacing
attribut défini. J'ai écrit une réponse complète qui fusionne toutes les parties correctes des autres réponses sur cette page au cas où cela serait utile.Ce hack fonctionne pour Internet Explorer 6 et versions ultérieures, Google Chrome , Firefox et Opera :
La
*
déclaration concerne Internet Explorer 6 et 7 et les autres navigateurs l'ignoreront correctement.expression('separate', cellSpacing = '10px')
renvoie'separate'
, mais les deux instructions sont exécutées, car en JavaScript, vous pouvez passer plus d'arguments que prévu et tous seront évalués.la source
Pour ceux qui veulent une valeur d'espacement des cellules non nulle, le CSS suivant a fonctionné pour moi, mais je ne peux le tester que dans Firefox.
Voir le lien Quirksmode publié ailleurs pour les détails de compatibilité. Il semble que cela ne fonctionne pas avec les anciennes versions d'Internet Explorer.
la source
La solution simple à ce problème est:
la source
De plus, si vous le souhaitez
cellspacing="0"
, n'oubliez pas d'ajouterborder-collapse: collapse
votretable
feuille de style.la source
Enveloppez le contenu de la cellule avec un div et vous pouvez faire tout ce que vous voulez, mais vous devez envelopper chaque cellule dans une colonne pour obtenir un effet uniforme. Par exemple, pour obtenir des marges gauche et droite plus larges:
Ainsi, le CSS sera,
Oui, c'est un problème. Oui, cela fonctionne avec Internet Explorer. En fait, je n'ai testé cela qu'avec Internet Explorer, car c'est tout ce que nous sommes autorisés à utiliser au travail.
la source
Utilisez simplement
border-collapse: collapse
pour votre table, etpadding
pourth
outd
.la source
Ce style est destiné à une réinitialisation complète des tableaux - remplissage de cellule , espacement des cellules et bordures .
J'avais ce style dans mon fichier reset.css:
la source
TBH. Pour tous les fannings autour de CSS, vous pourriez aussi bien utiliser
cellpadding="0"
cellspacing="0"
car ils ne sont pas obsolètes ...Quiconque suggère des marges sur
<td>
n'a évidemment pas essayé cela.la source
la source
Utilisez simplement les règles de remplissage CSS avec les données de table:
Et pour l'espacement des bordures:
Cependant, cela peut créer des problèmes dans les anciennes versions de navigateurs comme Internet Explorer en raison de l'implémentation différente du modèle de boîte.
la source
D'après ce que je comprends des classifications du W3C, les
<table>
s sont destinés à afficher des données «uniquement».Sur cette base, j'ai trouvé beaucoup plus facile de créer un
<div>
avec les arrière-plans et tout cela et d'avoir un tableau avec des données flottant dessus en utilisantposition: absolute;
etbackground: transparent;
...Il fonctionne sur Chrome, Internet Explorer (6 et versions ultérieures) et Mozilla Firefox (2 et versions ultérieures).
Les marges sont utilisées (ou entend toute façon) pour créer un espacement entre des éléments de récipient, comme
<table>
,<div>
et<form>
non<tr>
,<td>
,<span>
ou<input>
. L'utiliser pour autre chose que des éléments de conteneur vous gardera occupé à ajuster votre site Web pour les futures mises à jour du navigateur.la source
CSS:
la source
Vous pouvez facilement définir le remplissage à l'intérieur des cellules du tableau à l'aide de la propriété de remplissage CSS. C'est un moyen valide pour produire le même effet que l'attribut cellpadding du tableau.
De même, vous pouvez utiliser la propriété CSS border-spacing pour appliquer l'espacement entre les bordures de cellules de tableau adjacentes comme l'attribut cellspacing. Cependant, afin de travailler l'espacement des bordures, la valeur de la propriété border-collapse doit être distincte, ce qui est par défaut.
la source
Essaye ça:
Ou essayez ceci:
la source
J'ai utilisé
!important
après l'effondrement de la frontière commeet cela fonctionne pour moi dans IE7. Il semble remplacer l'attribut cellspacing.
la source
!important
ne serait nécessaire que pour remplacer d' autres paramètres CSS dans une situation complexe (et même alors, principalement une mauvaise approche).!important
, qui aurait pu être inclus en tant que commentaire au lieu d'une autre réponse.cell-padding
peut être donné parpadding
en CSS tandis quecell-spacing
peut être défini en définissantborder-spacing
une table.Violon .
la source
Si
margin
ne fonctionne pas, essayez de définirdisplay
destr
àblock
et la marge fonctionnera.la source
Pour les tableaux, l'espacement des cellules et le remplissage des cellules sont obsolètes dans HTML 5.
Maintenant, pour l'espacement des cellules, vous devez utiliser l'espacement des bordures. Et pour le rembourrage cellulaire, vous devez utiliser border-collapse.
Et assurez-vous de ne pas l'utiliser dans votre code HTML5. Essayez toujours d'utiliser ces valeurs dans un fichier CSS 3.
la source
la source
Dans un tableau HTML, le
cellpadding
etcellspacing
peut être défini comme ceci:Pour le rembourrage cellulaire :
Appelez simplement une
td/th
cellule simplepadding
.Exemple:
Afficher l'extrait de code
Pour l'espacement des cellules
Appelez simplement simple
table
border-spacing
Exemple:
Afficher l'extrait de code
Plus de style de tableau par lien source CSS ici, vous obtenez plus de style de tableau par CSS .
la source
Vous pouvez simplement faire quelque chose comme ça dans votre CSS, en utilisant
border-spacing
etpadding
:la source
Que diriez-vous d'ajouter le style directement à la table elle-même? C'est au lieu d'utiliser
table
dans votre CSS, ce qui est une mauvaise approche si vous avez plusieurs tables sur votre page:la source
td { padding: ... }
outable { border-spacing: ... }
, au lieu de l'appliquer directement au tableau. Cela n'ajoute rien. Comme je l'ai dit, lorsque vous avez plusieurs tableaux sur votre page et que vous ne voulez pas les affecter, vous ne voulez pas cela! Nous n'avons pas besoin d'une page entière de réponses disant "Utilisez la feuille de style!", Alors que c'est peut-être la dernière chose que vous voulez, car vous ne souhaitez mettre en forme qu'une cellule ou un tableau. C'est quand l'appliquer àtable
outd
n'est pas souhaitable et créer une toute nouvelle classe car c'est exagéré.table#someId
).Je suggère cela et toutes les cellules du tableau particulier sont effectuées.
la source
Vous pouvez vérifier le code ci-dessous juste créer un
index.html
et l'exécuter.PRODUCTION :
la source