In einer HTML-Tabelle können cellpadding
und cellspacing
folgendermaßen festgelegt werden:
<table cellspacing="1" cellpadding="1">
Wie kann das auch mit CSS erreicht werden?
Grundlagen
Um das "Cellpadding" in CSS zu steuern, können Sie einfach padding
für Tabellenzellen verwenden. Z.B. für 10px von "cellpadding":
td {
padding: 10px;
}
Für "Zellabstand" können Sie die CSS-Eigenschaft border-spacing
auf Ihre Tabelle anwenden. Z.B. für 10px "Zellenabstand":
table {
border-spacing: 10px;
border-collapse: separate;
}
Diese Eigenschaft erlaubt sogar getrennte horizontale und vertikale Abstände, was Sie mit dem "Zellenabstand" der alten Schule nicht erreichen können.
Probleme in IE <= 7
Dies funktioniert in fast allen gängigen Browsern, mit Ausnahme von Internet Explorer bis Internet Explorer 7, wo Sie fast Pech haben. Ich sage "fast", weil diese Browser immer noch die Eigenschaft border-collapse
unterstützen, mit der die Grenzen benachbarter Tabellenzellen zusammengeführt werden. Wenn Sie versuchen, den Zellenabstand zu beseitigen (d. H. cellspacing="0"
), sollte border-collapse:collapse
den gleichen Effekt haben: Kein Leerzeichen zwischen Tabellenzellen. Diese Unterstützung ist jedoch fehlerhaft, da sie ein vorhandenes HTML-Attribut cellspacing
für das Tabellenelement nicht überschreibt.
Kurz gesagt: Bei Browsern, die nicht mit Internet Explorer 5-7 arbeiten, werden Sie von border-spacing
behandelt. Für Internet Explorer können Sie border-collapse:collapse
verwenden, wenn Ihre Situation genau richtig ist (Sie möchten einen Zellabstand von 0 und für Ihre Tabelle ist dieser noch nicht definiert).
table {
border-spacing: 0;
border-collapse: collapse;
}
Hinweis: Eine gute Übersicht über die CSS-Eigenschaften, die für Tabellen und für welche Browser angewendet werden können, finden Sie auf dieser Seite fantastische Quirksmode-Seite .
Das Standardverhalten des Browsers entspricht:
table {border-collapse: collapse;}
td {padding: 0px;}
Legt den Abstand zwischen dem Inhalt der Zelle und der Zellwand fest
table {border-collapse: collapse;}
td {padding: 6px;}
Steuert den Abstand zwischen Tabellenzellen
table {border-spacing: 2px;}
td {padding: 0px;}
table {border-spacing: 2px;}
td {padding: 6px;}
table {border-spacing: 8px 2px;}
td {padding: 6px;}
Hinweis: Wenn
border-spacing
gesetzt ist, zeigt dies an, dass dieborder-collapse
-Eigenschaft der Tabelleseparate
ist.
Hier Hier finden Sie den alten HTML-Weg, um dies zu erreichen.
table
{
border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
padding: 0; /* 'cellpadding' equivalent */
}
Das Festlegen von Rändern für Tabellenzellen hat meines Wissens keine wirklichen Auswirkungen. Das wahre CSS-Äquivalent für cellspacing
ist border-spacing
- aber es funktioniert nicht in Internet Explorer.
Sie können border-collapse: collapse
verwenden, um den Zellenabstand wie erwähnt zuverlässig auf 0 zu setzen, aber für jeden anderen Wert ist es meines Erachtens die einzige Möglichkeit für den Browser, das cellspacing
-Attribut weiterhin zu verwenden.
Dieser Hack funktioniert für Internet Explorer 6 und höher, Google Chrome , Firefox und Opera :
table {
border-collapse: separate;
border-spacing: 10px; /* cellspacing */
*border-collapse: expression('separate', cellSpacing = '10px');
}
table td, table th {
padding: 10px; /* cellpadding */
}
Die *
-Deklaration gilt für Internet Explorer 6 und 7, und andere Browser ignorieren sie ordnungsgemäß.
expression('separate', cellSpacing = '10px')
gibt 'separate'
zurück, aber beide Anweisungen werden ausgeführt, da Sie in JavaScript mehr Argumente als erwartet übergeben können und alle ausgewertet werden.
Für diejenigen, die einen Zellabstand ungleich Null wünschen, hat das folgende CSS für mich funktioniert, aber ich kann es nur in Firefox testen.
Weitere Informationen zur Kompatibilität finden Sie unter Quirksmode Link an anderer Stelle veröffentlicht . Es scheint, dass es möglicherweise nicht mit älteren Internet Explorer-Versionen funktioniert.
table {
border-collapse: separate;
border-spacing: 2px;
}
Die einfache Lösung für dieses Problem lautet:
table
{
border: 1px solid #000000;
border-collapse: collapse;
border-spacing: 0px;
}
table td
{
padding: 8px 8px;
}
Wenn Sie cellspacing="0"
möchten, vergessen Sie nicht, border-collapse: collapse
in das Stylesheet Ihres table
einzufügen.
Umhüllen Sie den Inhalt der Zelle mit einem Div, und Sie können alles tun, was Sie wollen. Sie müssen jedoch jede Zelle in eine Spalte einhüllen, um einen einheitlichen Effekt zu erzielen. Um zum Beispiel den linken und rechten Rand zu vergrößern, gehen Sie wie folgt vor:
So wird die CSS sein,
div.cellwidener {
margin: 0px 15px 0px 15px;
}
td.tight {
padding: 0px;
}
<table border="0">
<tr>
<td class="tight">
<div class="cellwidener">My content</div>
</td>
</tr>
</table>
Ja, es ist ein Ärger. Ja, es funktioniert mit dem Internet Explorer. Tatsächlich habe ich das nur mit dem Internet Explorer getestet, weil wir das nur bei der Arbeit verwenden dürfen.
Verwenden Sie einfach border-collapse: collapse
für Ihren Tisch und padding
für th
oder td
.
Dieser Stil ist für vollständiges Zurücksetzen für Tabellen - Zellauffüllen, Zellabstand und Rahmen.
Ich hatte diesen Stil in meiner reset.css-Datei:
table{
border:0; /* Replace border */
border-spacing: 0px; /* Replace cellspacing */
border-collapse: collapse; /* Patch for Internet Explorer 6 and Internet Explorer 7 */
}
table td{
padding: 0px; /* Replace cellpadding */
}
TBH. Für das ganze Herumfummeln mit CSS kannst du auch einfach cellpadding="0"
cellspacing="0"
verwenden, da sie nicht veraltet sind ...
Jeder andere, der Ränder für <td>
vorschlägt, hat dies offensichtlich nicht ausprobiert.
table th,td {
padding: 8px 2px;
}
table {
border-collapse: separate;
border-spacing: 2px;
}
Verwenden Sie einfach CSS-Auffüllregeln mit Tabellendaten:
td {
padding: 20px;
}
Und für den Randabstand:
table {
border-spacing: 1px;
border-collapse: collapse;
}
In älteren Browserversionen wie dem Internet Explorer kann es jedoch zu Problemen kommen, da das Box-Modell einen Unterschied aufweist.
Aus den W3C-Klassifikationen geht hervor, dass <table>
s nur zur Anzeige von Daten gedacht sind.
Aufgrund dessen fand ich es viel einfacher, einen <div>
mit den Hintergründen und all dem zu erstellen und eine Tabelle mit Daten zu haben, die mit position: absolute;
und background: transparent;
darüber schweben.
Es funktioniert unter Chrome, Internet Explorer (6 und höher) und Mozilla Firefox (2 und höher).
Ränder werden verwendet (oder sind sowieso gemeint), um einen Abstandhalter zwischen Containerelementen wie <table>
, <div>
und <form>
zu erstellen, nicht <tr>
, <td>
, <span>
oder <input>
. Wenn Sie es nicht nur für Container-Elemente verwenden, müssen Sie Ihre Website für zukünftige Browser-Updates anpassen.
CSS:
selector{
padding:0 0 10px 0; // Top left bottom right
}
Mit der CSS-Padding-Eigenschaft können Sie den Abstand innerhalb der Tabellenzellen einfach festlegen. Dies ist eine gültige Methode, um den gleichen Effekt wie das Cellpadding-Attribut der Tabelle zu erzielen.
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 10px;
/* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Set Cellpadding in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>[email protected]</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>[email protected]</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>[email protected]</td>
</tr>
</tbody>
</table>
</body>
</html>
In ähnlicher Weise können Sie die CSS-Randabstandseigenschaft verwenden, um den Abstand zwischen benachbarten Tabellenzellenrändern wie das Zellabstandsattribut anzuwenden. Um den Randabstand zu gewährleisten, muss der Wert der Eigenschaft border-collapse jedoch separat angegeben werden. Dies ist die Standardeinstellung.
table {
border-collapse: separate;
border-spacing: 10px;
/* Apply cell spacing */
}
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 5px;
/* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Set Cellspacing in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>[email protected]</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>[email protected]</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>[email protected]</td>
</tr>
</tbody>
</table>
</body>
</html>
Versuche dies:
table {
border-collapse: separate;
border-spacing: 10px;
}
table td, table th {
padding: 10px;
}
Oder versuchen Sie dies:
table {
border-collapse: collapse;
}
table td, table th {
padding: 10px;
}
Ich habe !important
nach dem Randeinbruch gerne benutzt
border-collapse: collapse !important;
und es funktioniert bei mir im IE7. Es scheint das Zellenabstandsattribut zu überschreiben.
<table>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
cell-padding
kann durch padding
in CSS angegeben werden, während cell-spacing
durch Festlegen von border-spacing
für Tabelle festgelegt werden kann.
table {
border-spacing: 10px;
}
td {
padding: 10px;
}
Geige .
td {
padding: npx; /* For cellpadding */
margin: npx; /* For cellspacing */
border-collapse: collapse; /* For showing borders in a better shape. */
}
Wenn margin
nicht funktioniert hat, versuchen Sie, display
von tr
auf block
zu setzen, und der Rand funktioniert dann.
Bei Tabellen sind der Zellabstand und das Zellauffüllen in HTML 5 veraltet.
Jetzt müssen Sie für den Zellabstand den Randabstand verwenden. Und für das Auffüllen von Zellen müssen Sie den Randausschnitt verwenden.
Und stellen Sie sicher, dass Sie dies nicht in Ihrem HTML5-Code verwenden. Versuchen Sie immer, diese Werte in einer CSS 3-Datei zu verwenden.
table {
border-spacing: 4px;
color: #000;
background: #ccc;
}
td {
padding-left: 4px;
}
In einer HTML-Tabelle können cellpadding
und cellspacing
folgendermaßen festgelegt werden:
Für Zellauffüllung :
Rufen Sie einfach td/th
cell padding
auf.
Beispiel:
/******Call-Padding**********/
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
<table>
<tr>
<th>Head1 </th>
<th>Head2 </th>
<th>Head3 </th>
<th>Head4 </th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</table>
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
Für Zellabstand
Nennen Sie einfach table
border-spacing
Beispiel:
/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}
<table>
<tr>
<th>Head1</th>
<th>Head2</th>
<th>Head3</th>
<th>Head4</th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</table>
/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}
Mehr Tabellenstil durch CSS-Quelllink hier erhalten Sie mehr Tabellenstil durch CSS .
Sie können einfach so etwas in Ihrem CSS tun, indem Sie border-spacing
und padding
verwenden:
table {
border-collapse: collapse;
}
td, th {
padding: 1em;
border: 1px solid blue;
}
<table>
<tr>
<th>head_1</th>
<th>head_2</th>
<th>head_3</th>
<th>head_4</th>
</tr>
<tr>
<td>txt_1</td>
<td>txt_2</td>
<td>txt_3</td>
<td>txt_4</td>
</tr>
</table>
Wie wäre es, wenn Sie den Stil direkt zur Tabelle selbst hinzufügen? Dies ist anstelle der Verwendung von table
in Ihrem CSS ein BAD Ansatz, wenn Sie mehrere Tabellen auf Ihrer Seite haben:
<table style="border-collapse: separate;border-spacing: 2px;">
<tr>
<td style="padding: 4px 4px;">Some Text</td>
</tr>
</table>