Qu'est-ce que le navigateur et pouvez-vous fournir un extrait de votre code (html / css)?
Patrick Desjardins
eh bien j'utilise ff3 car je sais que c'est-à-dire qu'il supporte soi-disant les règles mais pour l'instant je cherche à corriger dans ff3. j'ai essayé l'espacement et le rembourrage jusqu'à présent, pas de chance. productlistingitem est la table principale <class table = border "productListingItem" = "0" cellpadding = "10" cellspacing = "0"> <tr> <tr> <td class = "dragItem">
Marin
1
C'est peut-être parce que border-spacingc'est un attribut lié à tableet non tr. Essayez table.classname {border-spacing:5em}. Note: IE8 prend en charge la propriété border-spacing si un! DOCTYPE est spécifié.
Varun Natraaj
J'utilise la hauteur de ligne lorsqu'il n'y a pas de bordures.
Vous devez utiliser un rembourrage sur vos tdéléments. Quelque chose comme ça devrait faire l'affaire. Vous pouvez bien sûr obtenir le même résultat en utilisant un rembourrage supérieur au lieu d'un rembourrage inférieur.
Dans le code CSS ci-dessous, le signe supérieur à signifie que le remplissage n'est appliqué qu'aux tdéléments qui sont des enfants directs vers les tréléments de la classe spaceUnder. Cela permettra d'utiliser des tables imbriquées. (Cellules C et D dans l'exemple de code.) Je ne suis pas trop sûr de la prise en charge du navigateur pour le sélecteur d'enfant direct (pensez à IE 6), mais cela ne devrait pas casser le code dans les navigateurs modernes.
/* Apply padding to td elements that are direct children of the tr elements with class spaceUnder. */
tr.spaceUnder>td {padding-bottom:1em;}
code.google.com/p/ie7-js ajoute également la prise en charge du sélecteur d'enfant dans ie5.5, ie6, ie7
Antony Hatchkins
403
Sauf que cela ne résout pas du tout le problème lorsque vos lignes ont une couleur d'arrière-plan et que vous voulez réellement un ESPACE BLANC entre vos lignes.
Simon East
6
@Simon: L'espace fait généralement référence à un espace vide, et non spécifiquement à la couleur blanche. Si vous souhaitez coloriser l'espace entre les lignes, vous pouvez essayer avec la propriété CSS <code> border-bottom </code> sur les éléments td. Cela ne sera probablement rendu correctement qu'avec une bordure 1px. Une autre solution, mais pas si élégante, serait d'utiliser une ligne vide.
Jan Aagaard
18
@Jan: Oui, exactement ce que je veux dire ... Il est assez difficile de mettre un espace vide transparent entre les lignes. Votre solution aide dans certains cas, mais ne résout pas ce problème. L'insertion d'une ligne de tableau vide peut fonctionner, mais c'est faux. Un bottom-borderensemble sur transparent peut également fonctionner, mais je ne sais pas à quel point il est compatible avec plusieurs navigateurs.
Plus une déclaration de frontière, et voyez si cela atteint l'effet souhaité. Attention, cependant, IE ne prend pas en charge le modèle des "frontières séparées".
Oui, cette méthode serait idéale, sauf que IE 7 ne la prend pas en charge. Pour la prise en charge du navigateur, voir: quirksmode.org/css/tables.html
Simon East
7
En outre, il contrôle l'espacement sur toutes les lignes du tableau, vous ne pouvez pas définir l'espacement des lignes pour des lignes individuelles (ce que l'OP peut vouloir réaliser).
Simon East
1
Cela n'est pas cohérent entre Chrome et Firefox. Si vous avez un theadet tbody, cela rendra un double border-spacingentre ceux-ci, dans Chrome (mais un seul dans Firefox).
Camilo Martin
91
Il s'agit de la réponse réelle, définie spécifiquement border-spacing: 0 1empour obtenir votre espacement entre les lignes uniquement.
igneosaur
1
@igneosaur J'ai essayé de faire ce que vous avez dit mais cela a quand même ajouté de l'espacement entre toutes les lignes et pas seulement les deux premières. Pouvez-vous fournir un jsfiddle fonctionnel?
user3281466
184
Vous avez une table avec des albums d'identification avec toutes les données ... J'ai omis les trés et les tds
cela a bien fonctionné pour moi. le premier argument du border-spacing est l'espacement horizontal entre les cellules, et le second est l'espacement vertical.
Il n'est pas toujours nécessaire de créer du CSS si un bon vieux HTML peut faire l'affaire :)
est-il possible de postuler uniquement pour le tr à l'intérieur du "tbody"?
Jaison
129
puisque j'ai une image d'arrière-plan derrière la table, la simuler avec un rembourrage blanc ne fonctionnerait pas. J'ai choisi de mettre une ligne vide entre chaque ligne de contenu:
<trclass="spacer"><td></td></tr>
puis utilisez css pour donner aux lignes d'espacement une certaine hauteur et un fond transparent.
Je pense que c'est probablement plus flexible. Vous ne pouvez pas toujours contrôler quand à l'avance vous aurez besoin d'espace (pages générées dynamiquement).
Stefan Kendall
10
Cela me rappelle les années 90, lorsque le support CSS était presque inexistant et que les tableaux étaient utilisés pour la plupart des mises en page. Je donne toujours +1, cependant, parce que les autres «réponses» ne sont pas meilleures en termes de création d'espace entre les lignes du tableau.
labyrinthe
@labyrinth Peu de choses ont changé depuis les années 90. En ce qui concerne HTML, tout est devenu beaucoup plus puissant et beaucoup plus compliqué.
La propriété CSS border-spacing spécifie la distance entre les bordures des cellules adjacentes (uniquement pour le modèle de bordures séparées). Cela équivaut à l'attribut cellspacing dans le HTML de présentation, mais une deuxième valeur facultative peut être utilisée pour définir différents espacements horizontal et vertical.
Cette dernière partie est souvent supervisée. Exemple:
.your-table {
border-collapse: separate;/* allow spacing between cell borders */
border-spacing:05px;/* NOTE: syntax is <horizontal value> <vertical value> */
MISE À JOUR
Je comprends maintenant que l'OP souhaite que les lignes spécifiques et séparées aient un espacement accru. J'ai ajouté une configuration avec des tbodyéléments qui accomplit cela sans ruiner la sémantique. Cependant, je ne sais pas s'il est pris en charge sur tous les navigateurs. Je l'ai fait dans Chrome.
L'exemple ci-dessous est pour montrer comment vous pouvez le faire ressembler à la table existe de lignes séparées, pleine douceur CSS CSS. A également donné plus d'espacement à la première rangée avec la tbodyconfiguration. N'hésitez pas à utiliser!
Avis de support: IE8 +, Chrome, Firefox, Safari, Opera 4+
Si je voulais un espace vertical entre deux lignes particulières, je viens d'ajouter une ligne d'espacement <tr> <td colspan = "2" style = "padding-bottom: 1em;"> </td> </tr>
Paul Taylor
Cela fonctionnerait mais est sémantiquement incorrect (comme dans, votre ligne de séparation n'est pas une ligne réelle avec des données comme les autres lignes. Cela peut être gênant pour les personnes utilisant des lecteurs d'écran ou d'autres appareils auxiliaires, ainsi qu'à des fins d'indexation et Cela peut ne pas faire une énorme différence, mais il est bon de le garder dans votre tête lors du développement d'un site Web :)
Justus Romijn
C'est vrai, s'il utilise réellement une table pour représenter une table. S'il utilise simplement un tableau comme moyen d'afficher des données sous forme de tableau, je dirais qu'il est plus logique d'insérer une ligne pour représenter un écart entre deux éléments plutôt que d'ajouter simplement un espacement aux éléments td ci-dessus. ou en dessous de la ligne car l'utilisateur souhaite ajouter de l'espace entre deux lignes et non pas augmenter la taille des éléments d'une ligne.
Paul Taylor
53
Vous pouvez essayer d'ajouter une ligne de séparation:
Pour IE, tr sans corps ne serait pas reconnu. ajoutez également une balise td factice.
Nap
Le problème est qu'en HTML5, le validateur W3C émettra une erreur disant "Une ligne de table avait 0 colonnes de large, ce qui est inférieur au nombre de colonnes établi par la première ligne".
David Grayson
Bien, j'avais ajouté un autre <tr>, <td> et <p> et défini la visibilité du p-tag sur caché .. Fonctionne aussi. :-)
Jeppe
47
Vous ne pouvez pas modifier la marge d'une cellule de tableau. Mais vous POUVEZ changer le rembourrage. Modifiez le remplissage du TD, ce qui agrandira la cellule et éloignera le texte du côté avec le remplissage accru. Si vous avez des frontières, cependant, ce ne sera pas exactement ce que vous voulez.
<table><tr><td>Some text - 1</td><td>Some text - 1</td></tr><tr><td>Some text - 2</td><td>Some text - 2</td></tr><tr><td>Some text - 3</td><td>Some text - 3</td></tr></table>
Assurez-vous que la couleur d'arrière-plan est définie sur le td plutôt que sur la ligne. Cela devrait fonctionner sur la plupart des navigateurs ... (Chrome, c'est-à-dire testé & ff)
Cela crée des problèmes d'alignement vertical étranges, au moins dans Firefox
cjohansson
20
Vous devez vous mettre border-collapse: separate;sur la table; la plupart des feuilles de style par défaut du navigateur commencent à border-collapse: collapse;, ce qui réduit l'espacement des bordures.
En outre, l'espacement des frontières: va sur le TD, pas le TR.
l'espacement des frontières est également pour le tableau non td
silversky
4
Merci. Je vous ai remercié dans le correctif de commentaire précédemment, mais un éditeur trop zélé qui voulait changer mon style et a cassé le code dans le processus a également supprimé mes remerciements. Je le mets maintenant là où il ne peut pas être modifié.
John Haugeland
18
Vous pouvez utiliser la hauteur de ligne dans le tableau:
Vous avez raison mais le texte obtiendra également la hauteur de ligne qui n'est pas bonne, je pense que vous devriez voir le coleman! Il a la bonne solution
C'est effrayant. En réalité, cela définit la displaypropriété blockpour la ligne. Cela permet à la ligne d'avoir une marge. Marge verticale " S'applique à: tous les éléments, à l'exception de ceux dont le type d'affichage est autre que légende de tableau, tableau et tableau en ligne ". Puisqu'il table-rown'y a aucune de ces exceptions, cela ne compte pas. Vous pourriez probablement obtenir le même effet en faisant tr {display:block;}Mais je me méfierais d'utiliser l'une de ces méthodes dans un tableau compliqué. Cela n'aboutira probablement pas à ce que vous attendez.
sholsinger
C'est effrayant, mais ça a marché. Pas dans ie7, mais l'espacement des cellules directement dans le tableau fonctionne dans ie7.
Liko
les lignes flottantes ne sont pas une bonne solution .. surtout si votre page est plus grande que 2x la largeur de la ligne. ajouter l'attribut width aux deux balises
AndreaCi
11
Pour créer une illusion d'espacement entre les lignes, appliquez la couleur d'arrière-plan à la ligne, puis créez une bordure épaisse avec une couleur blanche afin qu'un "espace" soit créé :)
Vous pouvez le faire via CSS, que je dirais que c'est plus "correct" (en plus du fait qu'il est plus élégant, déplacer le style du balisage vers CSS économise la bande passante).
Camilo Martin
2
Il n'économise pas de bande passante. J'utilise en fait plus. En supposant que vous n'ajoutez pas une feuille de style juste pour cela, vous devez ajouter un sélecteur et éventuellement un identifiant ou un nom à ce tableau. C'est plus d'octets pas moins.
majinnaibu
9
Je suis tombé sur cela tout en luttant avec un problème similaire. J'ai trouvé la réponse de Varun Natraaj très utile, mais j'utiliserais plutôt une bordure transparente.
td { border:1em solid transparent;}
Les bordures transparentes ont toujours de la largeur.
Fonctionne pour la plupart des derniers navigateurs en 2015. Solution simple. Cela ne fonctionne pas pour le transparent, mais contrairement à la réponse de Thoronwen, je ne peux pas être transparent pour le rendu avec n'importe quelle taille.
Je me rends compte que c'est une réponse à un vieux fil et peut ne pas être la solution demandée, mais bien que toutes les solutions suggérées n'aient pas fait ce dont j'avais besoin, cette solution a fonctionné pour moi.
J'avais 2 cellules de tableau, l'une avec une couleur d'arrière-plan, l'autre avec une couleur de bordure. Les solutions ci-dessus suppriment la frontière, de sorte que la cellule de droite semble flotter dans les airs. La solution qui a fait l'affaire était de remplacer le table, tret tdpar les divs et les classes correspondantes: la table serait div id="table_replacer", tr serait div class="tr_replacer"et td serait div class="td_replacer"(changer les balises fermantes en divs aussi bien évidemment)
Pour obtenir la solution à mon problème, le CSS est:
#table_replacer{display:table;}.tr_replacer {border:1px solid #123456;margin-bottom: 5px;}/*DO NOT USE display:table-row! It will destroy the border and the margin*/.td_replacer{display:table-cell;}
À mon humble avis, cette solution équivaut à utiliser la table régulière, le modèle tr, le td et le style tr {display: block;} que j'ai essayés. Problème: le tableau est différent, car les éléments td ne sont pas rendus à la largeur du tableau, mais flottent à gauche dans le tr. Cela signifie que les éléments td de toutes les lignes ne sont plus alignés verticalement.
Andreas Stankewitz
0
Vous pouvez remplir les éléments <td /> avec des éléments <div /> et appliquer n'importe quelle marge aux divisions que vous aimez. Pour un espace visuel entre les lignes, vous pouvez utiliser une image d'arrière-plan répétitive sur l'élément <tr />. (C'était la solution que je viens d'utiliser aujourd'hui, et elle semble fonctionner à la fois dans IE6 et FireFox 3, bien que je ne l'ai pas testée plus loin.)
De plus, si vous ne souhaitez pas modifier le code de votre serveur pour mettre des <div /> à l'intérieur des <td />, vous pouvez utiliser jQuery (ou quelque chose de similaire) pour encapsuler dynamiquement le contenu de <td /> dans un <div / >, vous permettant d'appliquer le CSS comme vous le souhaitez.
Voici une solution simple et élégante, avec quelques mises en garde:
Vous ne pouvez pas réellement rendre les espaces transparents, vous devez leur donner une couleur spécifique.
Vous ne pouvez pas arrondir les coins des bordures au-dessus et en dessous des espaces
Vous devez connaître le remplissage et les bordures de vos cellules de tableau
Dans cet esprit, essayez ceci:
td {padding:5px8px;border:2px solid blue;background:#E0E0E0}/* lets say the cells all have this padding and border, and the gaps should be white */
tr.gapbefore td {overflow:visible}
tr.gapbefore td::before,
tr.gapbefore th::before
{
content:"";
display:block;
position:relative;
z-index:1;
width:auto;
height:0;
padding:0;
margin:-5px-10px5px;/* 5px = cell top padding, 10px = (cell side padding)+(cell side border width)+(table side border width) */
border-top:16px solid white;/* the size & color of the gap you want */
border-bottom:2px solid blue;/* this replaces the cell's top border, so should be the same as that. DOUBLE IT if using border-collapse:separate */}
En fait, vous collez un ::beforebloc rectangulaire en haut de toutes les cellules de la ligne que vous souhaitez précédé d'un espace. Ces blocs dépassent un peu des cellules pour chevaucher les bordures existantes, les cachant. Ces blocs sont juste une bordure supérieure et inférieure prises en sandwich ensemble: la bordure supérieure forme l'espace, et la bordure inférieure recrée l'apparence de la bordure supérieure d'origine des cellules.
Notez que si vous avez une bordure autour du tableau lui-même ainsi que des cellules, vous devrez augmenter davantage la marge horizontale -ve de vos «blocs». Donc, pour une bordure de table 4px, vous utiliseriez plutôt:
margin:-5px-12px5px;/* 14px = original 10px + 2px for 'uncollapsed' part of table border */
Et si votre table utilise à la border-collapse:separateplace de border-collapse:collapse, vous devrez (a) utiliser la largeur de bordure de table complète:
margin:-5px-14px5px;/* 14px = original 10px + 4px full width of table border */
... et aussi (b) remplacer la bordure à double largeur qui doit maintenant apparaître sous l'écart:
border-bottom:4px solid blue;/* i.e. 4px = cell top border + previous row's bottom border */
La technique est facilement adaptée à une version .gapafter, si vous préférez, ou à la création d'espaces verticaux (colonnes) au lieu d'écarts de ligne.
Est-ce que cela fonctionne réellement? Je l'ai div.el { display: table-row; margin: 10px; }, et la marge ne fait rien. Je sais que c'est un peu différent d'une table réelle, mais ça ne devrait pas être ...
bradlis7
20
Les lignes / cellules du tableau n'ont pas de marges.
border-spacing
c'est un attribut lié àtable
et nontr
. Essayeztable.classname {border-spacing:5em}
.Note
: IE8 prend en charge la propriété border-spacing si un! DOCTYPE est spécifié.Réponses:
Vous devez utiliser un rembourrage sur vos
td
éléments. Quelque chose comme ça devrait faire l'affaire. Vous pouvez bien sûr obtenir le même résultat en utilisant un rembourrage supérieur au lieu d'un rembourrage inférieur.Dans le code CSS ci-dessous, le signe supérieur à signifie que le remplissage n'est appliqué qu'aux
td
éléments qui sont des enfants directs vers lestr
éléments de la classespaceUnder
. Cela permettra d'utiliser des tables imbriquées. (Cellules C et D dans l'exemple de code.) Je ne suis pas trop sûr de la prise en charge du navigateur pour le sélecteur d'enfant direct (pensez à IE 6), mais cela ne devrait pas casser le code dans les navigateurs modernes.Cela devrait ressembler à ceci:
la source
bottom-border
ensemble sur transparent peut également fonctionner, mais je ne sais pas à quel point il est compatible avec plusieurs navigateurs.Dans la table parent, essayez de définir
Plus une déclaration de frontière, et voyez si cela atteint l'effet souhaité. Attention, cependant, IE ne prend pas en charge le modèle des "frontières séparées".
la source
thead
ettbody
, cela rendra un doubleborder-spacing
entre ceux-ci, dans Chrome (mais un seul dans Firefox).border-spacing: 0 1em
pour obtenir votre espacement entre les lignes uniquement.Vous avez une table avec des albums d'identification avec toutes les données ... J'ai omis les trés et les tds
Dans le CSS:
la source
cellspacing
attribut de <table> n'est pas pris en charge dans HTML5.puisque j'ai une image d'arrière-plan derrière la table, la simuler avec un rembourrage blanc ne fonctionnerait pas. J'ai choisi de mettre une ligne vide entre chaque ligne de contenu:
puis utilisez css pour donner aux lignes d'espacement une certaine hauteur et un fond transparent.
la source
De Mozilla Developer Network :
Cette dernière partie est souvent supervisée. Exemple:
MISE À JOUR
Je comprends maintenant que l'OP souhaite que les lignes spécifiques et séparées aient un espacement accru. J'ai ajouté une configuration avec des
tbody
éléments qui accomplit cela sans ruiner la sémantique. Cependant, je ne sais pas s'il est pris en charge sur tous les navigateurs. Je l'ai fait dans Chrome.L'exemple ci-dessous est pour montrer comment vous pouvez le faire ressembler à la table existe de lignes séparées, pleine douceur CSS CSS. A également donné plus d'espacement à la première rangée avec la
tbody
configuration. N'hésitez pas à utiliser!Avis de support: IE8 +, Chrome, Firefox, Safari, Opera 4+
la source
Vous pouvez essayer d'ajouter une ligne de séparation:
html:
css:
la source
Vous ne pouvez pas modifier la marge d'une cellule de tableau. Mais vous POUVEZ changer le rembourrage. Modifiez le remplissage du TD, ce qui agrandira la cellule et éloignera le texte du côté avec le remplissage accru. Si vous avez des frontières, cependant, ce ne sera pas exactement ce que vous voulez.
la source
border-bottom
etpadding-bottom
signifie que la frontière sera en dessous du rembourrage.Jetez un œil à l' attribut border-collapse: distinct (par défaut) et à la propriété border-spacing .
Tout d'abord, vous devez les séparer avec border-collapse , puis vous pouvez définir l' espace entre les colonnes et les lignes avec border-spacing .
Ces deux propriétés CSS sont en fait bien prises en charge sur tous les navigateurs, voir ici .
la source
Ok, tu peux faire
Assurez-vous que la couleur d'arrière-plan est définie sur le td plutôt que sur la ligne. Cela devrait fonctionner sur la plupart des navigateurs ... (Chrome, c'est-à-dire testé & ff)
la source
Vous devez vous mettre
border-collapse: separate;
sur la table; la plupart des feuilles de style par défaut du navigateur commencent àborder-collapse: collapse;
, ce qui réduit l'espacement des bordures.En outre, l'espacement des frontières: va sur le
TD
, pas leTR
.Essayer:
la source
Vous pouvez utiliser la hauteur de ligne dans le tableau:
la source
la source
Une réponse trop tardive :)
Si vous appliquez un flottant aux
tr
éléments, vous pouvez espacer entre deux lignes avec unmargin
attribut.la source
display
propriétéblock
pour la ligne. Cela permet à la ligne d'avoir une marge. Marge verticale " S'applique à: tous les éléments, à l'exception de ceux dont le type d'affichage est autre que légende de tableau, tableau et tableau en ligne ". Puisqu'iltable-row
n'y a aucune de ces exceptions, cela ne compte pas. Vous pourriez probablement obtenir le même effet en faisanttr {display:block;}
Mais je me méfierais d'utiliser l'une de ces méthodes dans un tableau compliqué. Cela n'aboutira probablement pas à ce que vous attendez.Pour créer une illusion d'espacement entre les lignes, appliquez la couleur d'arrière-plan à la ligne, puis créez une bordure épaisse avec une couleur blanche afin qu'un "espace" soit créé :)
la source
La bonne façon de donner un espacement aux tableaux est d'utiliser le rembourrage cellulaire et l'espacement des cellules, par exemple
la source
Je suis tombé sur cela tout en luttant avec un problème similaire. J'ai trouvé la réponse de Varun Natraaj très utile, mais j'utiliserais plutôt une bordure transparente.
Les bordures transparentes ont toujours de la largeur.
la source
Fonctionne pour la plupart des derniers navigateurs en 2015. Solution simple. Cela ne fonctionne pas pour le transparent, mais contrairement à la réponse de Thoronwen, je ne peux pas être transparent pour le rendu avec n'importe quelle taille.
la source
Mettez simplement
div
à l'intérieur detd
et définissez les styles suivantsdiv
:la source
Je me rends compte que c'est une réponse à un vieux fil et peut ne pas être la solution demandée, mais bien que toutes les solutions suggérées n'aient pas fait ce dont j'avais besoin, cette solution a fonctionné pour moi.
J'avais 2 cellules de tableau, l'une avec une couleur d'arrière-plan, l'autre avec une couleur de bordure. Les solutions ci-dessus suppriment la frontière, de sorte que la cellule de droite semble flotter dans les airs. La solution qui a fait l'affaire était de remplacer le
table
,tr
ettd
par les divs et les classes correspondantes: la table seraitdiv id="table_replacer"
, tr seraitdiv class="tr_replacer"
et td seraitdiv class="td_replacer"
(changer les balises fermantes en divs aussi bien évidemment)Pour obtenir la solution à mon problème, le CSS est:
J'espère que cela aide quelqu'un.
la source
Vous pouvez remplir les éléments <td /> avec des éléments <div /> et appliquer n'importe quelle marge aux divisions que vous aimez. Pour un espace visuel entre les lignes, vous pouvez utiliser une image d'arrière-plan répétitive sur l'élément <tr />. (C'était la solution que je viens d'utiliser aujourd'hui, et elle semble fonctionner à la fois dans IE6 et FireFox 3, bien que je ne l'ai pas testée plus loin.)
De plus, si vous ne souhaitez pas modifier le code de votre serveur pour mettre des <div /> à l'intérieur des <td />, vous pouvez utiliser jQuery (ou quelque chose de similaire) pour encapsuler dynamiquement le contenu de <td /> dans un <div / >, vous permettant d'appliquer le CSS comme vous le souhaitez.
la source
Ou ajoutez simplement un blanc avec la hauteur de la marge entre les lignes que vous souhaitez ajouter l'espacement
la source
Voici une solution simple et élégante, avec quelques mises en garde:
Dans cet esprit, essayez ceci:
En fait, vous collez un
::before
bloc rectangulaire en haut de toutes les cellules de la ligne que vous souhaitez précédé d'un espace. Ces blocs dépassent un peu des cellules pour chevaucher les bordures existantes, les cachant. Ces blocs sont juste une bordure supérieure et inférieure prises en sandwich ensemble: la bordure supérieure forme l'espace, et la bordure inférieure recrée l'apparence de la bordure supérieure d'origine des cellules.Notez que si vous avez une bordure autour du tableau lui-même ainsi que des cellules, vous devrez augmenter davantage la marge horizontale -ve de vos «blocs». Donc, pour une bordure de table 4px, vous utiliseriez plutôt:
Et si votre table utilise à la
border-collapse:separate
place deborder-collapse:collapse
, vous devrez (a) utiliser la largeur de bordure de table complète:... et aussi (b) remplacer la bordure à double largeur qui doit maintenant apparaître sous l'écart:
La technique est facilement adaptée à une version .gapafter, si vous préférez, ou à la création d'espaces verticaux (colonnes) au lieu d'écarts de ligne.
Voici un codepen où vous pouvez le voir en action: https://codepen.io/anon/pen/agqPpW
la source
Ici, cela fonctionne bien:
Je suppose que vous pourriez élaborer une mise en page plus fine en spécifiant quel td si nécessaire.
la source
faire cela montré ci-dessus ...
supprime l'alignement vertical des colonnes, alors faites attention à la façon dont vous l'utilisez
la source
As-tu essayé:
Alternativement, chaque td peut également être ajusté:
ou
la source
div.el { display: table-row; margin: 10px; }
, et la marge ne fait rien. Je sais que c'est un peu différent d'une table réelle, mais ça ne devrait pas être ...