Comment supprimer l'espace supplémentaire entre les lignes et les colonnes du tableau.
J'ai essayé de changer la marge, le remplissage et diverses propriétés de bordure sur la table et tr et td.
Je veux que les images soient toutes côte à côte pour ressembler à une seule grande image.
Comment dois-je résoudre ce problème?
CSS
table {
border-collapse: collapse;
}
HTML
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Tera Byte Video Game Creation Camp</title>
<link rel="stylesheet" type="text/css" href="style.css"></link>
</head>
<body>
<table class="mytable" align="center">
<tr class="header">
<td colspan="3"><img src="images/home_01.png" /></td>
</tr>
<tr class="top">
<td colspan="3"><img src="images/home_02.png" /></td>
</tr>
<tr class="link-row">
<td><img src="images/home_03.png" /></td>
<td><img src="images/home_04.png" /></td>
<td><img src="images/home_05.png" /></td>
</tr>
<tr class="link-row">
<td><img src="images/home_07.png" /></td>
<td><img src="images/home_06.png" /></td>
<td><img src="images/home_08.png" /></td>
</tr>
<tr class="link-row">
<td><img src="images/home_09.png" /></td>
<td><img src="images/home_10.png" /></td>
<td><img src="images/home_11.png" /></td>
</tr>
<tr class="link-row">
<td><img src="images/home_12.png" /></td>
<td><img src="images/home_13.png" /></td>
<td><img src="images/home_14.png" /></td>
</tr>
<tr class="bottom">
<td colspan="3"><img src="images/home_15.png" /></td>
</tr>
</table>
</body>
</html>
html
css
html-table
Zach Galant
la source
la source
Ajout à la réponse de vectran: Vous devez également définir un
cellspacing
attribut sur l'élément de table pour une compatibilité entre navigateurs.<table cellspacing="0">
EDIT (par souci d'exhaustivité, je développe cela 5 ans plus tard :):
Internet Explorer 6 et Internet Explorer 7 vous obligeaient à définir l' espacement des cellules directement comme attribut de table, sinon l'espacement ne disparaîtrait pas.
Internet Explorer 8 et les versions ultérieures et toutes les autres versions des navigateurs populaires - Chrome, Firefox, Opera 4+ - prennent en charge la propriété CSS border-spacing .
Ainsi, pour réinitialiser l'espacement des cellules du tableau entre les navigateurs (prenant en charge IE6 en tant que navigateur de dinosaures), vous pouvez suivre l'exemple de code ci-dessous:
table{ border: 1px solid black; } table td { border: 1px solid black; /* Style just to show the table cell boundaries */ } table.no-spacing { border-spacing:0; /* Removes the cell spacing via CSS */ border-collapse: collapse; /* Optional - if you don't want to have double border where cells touch */ }
<p>Default table:</p> <table> <tr> <td>First cell</td> <td>Second cell</td> </tr> </table> <p>Removed spacing:</p> <table class="no-spacing" cellspacing="0"> <!-- cellspacing 0 to support IE6 and IE7 --> <tr> <td>First cell</td> <td>Second cell</td> </tr> </table>
la source
Cela a fonctionné pour moi:
#table { border-collapse: collapse; border-spacing: 0; }
la source
Pour les images dans td, utilisez ceci pour les images:
display: block;
Cela supprime l'espace indésirable pour moi
la source
Juste en ajoutant la réponse de Jacob, car
img
danstd
,body {line-height: 0;} img {display: block; vertical-align: bottom;}
Cela fonctionne pour la plupart des clients de messagerie, y compris Gmail. Mais pas Outlook. Pour Outlook, vous devez faire deux étapes supplémentaires:
table {border-collapse: collapse;}
et mettre tous les
td
éléments à la mêmeheight
etwidth
que ses images contenues. Par exemple,<td width="600" height="80" style="line-height: 80px;"> <img height="80" src="http://www.website.com/images/Nature_01.jpg" width="600" /> </td>
la source
table { border-collapse: collapse; }
réduira toutes les bordures séparant les colonnes du tableau ...
ou essayez
<table cellspacing="0" style="border-spacing: 0;">
faites tout l'espacement des cellules à 0 et l'espacement des bordures à 0 pour obtenir la même chose.
Amusez vous!
la source
<table cellspacing="0" border-spacing: 0;>
est un balisage invalide!<table cellspacing="0" style="border-spacing: 0;">
serait correctPour le HTML5 conforme aux normes, ajoutez tout ce css pour supprimer tout l'espace entre les images dans les tableaux:
table { border-spacing: 0; border-collapse: collapse; } td { padding:0px; } td img { display:block; }
la source
Essaye ça,
table{ border-collapse: collapse; /* 'cellspacing' equivalent */ } table td, table th{ padding: 0; /* 'cellpadding' equivalent */ }
la source
définir Cellpadding et cellspacing sur 0 supprimera l'espace inutile entre les lignes et les colonnes ...
la source
Tout ce que j'avais à faire était d'ajouter:
line-height: 0px;
dans mon
<tr ...>
la source
l'ajout de cette ligne au début du fichier a fonctionné pour moi:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
la modification du css pour définir les propriétés de bordure appropriées ne fonctionnait pas jusqu'à ce que j'aie ajouté la ligne ci-dessus
la source
Avez-vous essayé de supprimer les TR qui ont un colspan et voir si cela change quelque chose?
J'ai vu des colspans et des rowspans assez désagréables en ce qui concerne les conceptions de table précises. Si vos images semblent correctes sans les colspan-TR, je commencerais à partir de là et créerais un ensemble de tables imbriqué.
De plus, votre style.css ne semble pas complet, peut-être qu'il y a quelque chose qui ne va pas? J'ajouterais au moins
padding: 0; margin: 0;
à la table (ou à la classe "mytable"). Assurez-vous que vos images n'ont pas non plus d'espaces et / ou de bordures (par exemple en les ajoutantimg { border: 0; }
à votre feuille de style).la source
J'ai eu ce problème et aucune des suggestions de plusieurs articles n'a fonctionné, je les ai toutes essayées. Mon problème s'est avéré que la table que je créais est imbriquée dans une autre table, héritant de ses propriétés. J'avais besoin de remplacer la table des conteneurs.
Dans cet exemple, SuColTable est une classe sur la table.
.SuColTable tr { border: none !important; } .SuColTable td { border-spacing: 0 !important; border: none !important; margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; padding-right: 0 !important; } .SuColTable { border-collapse: collapse !important; border: none !important; border-spacing: 0 !important; border-collapse: separate !important; padding-left: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; } // all padding would be padding: 0 !important
Le border-collapse, border: none et border-spacing suppriment la ligne de tableau / ligne / colonne. Les appels de remplissage 0 suppriment le remplissage de la table conteneur. J'ai dû inclure! Important sur chaque style pour que cela fonctionne, afin de remplacer les styles de table de conteneur.
J'ai padding_top, left et bottom (au lieu de seulement padding) car j'ai deux autres classes qui contrôlent le padding_right.
line-height: 0px;
La hauteur de ligne zéro rend la ligne une ligne haute. Si vous avez plusieurs lignes, elles sont compressées en une seule ligne.
la source
table{ border: 1px solid black; } table td { border: 1px solid black; /* Style just to show the table cell boundaries */ } table.no-spacing { border-spacing:0; /* Removes the cell spacing via CSS */ border-collapse: collapse; /* Optional - if you don't want to have double border where cells touch */ }
<p>Default table:</p> <table> <tr> <td>First cell</td> <td>Second cell</td> </tr> </table> <p>Removed spacing:</p> <table class="no-spacing" cellspacing="0"> <!-- cellspacing 0 to support IE6 and IE7 --> <tr> <td>First cell</td> <td>Second cell</td> </tr> </table>
la source