In einer HTML-Tabelle kann das cellpadding
und cellspacing
wie folgt festgelegt werden:
<table cellspacing="1" cellpadding="1">
Wie kann dasselbe mit CSS erreicht werden?
html
css
html-table
alignment
Kokos
quelle
quelle
width:auto
dannborder-collapse
möglicherweise nicht wie erwartet.Antworten:
Grundlagen
Zur Steuerung von "Cellpadding" in CSS können Sie einfach
padding
Tabellenzellen verwenden. ZB für 10px "Cellpadding":Für "Zellenabstand" können Sie die
border-spacing
CSS-Eigenschaft auf Ihre Tabelle anwenden . ZB für 10px "Zellabstand":Diese Eigenschaft ermöglicht sogar getrennte horizontale und vertikale Abstände, was mit dem "Zellenabstand" der alten Schule nicht möglich ist.
Probleme im IE <= 7
Dies funktioniert in fast allen gängigen Browsern, mit Ausnahme von Internet Explorer bis Internet Explorer 7, wo Sie fast kein Glück haben. Ich sage "fast", weil diese Browser immer noch die
border-collapse
Eigenschaft unterstützen, die die Ränder benachbarter Tabellenzellen zusammenführt. Wenn Sie versuchen, den Zellabstand zu eliminieren (d. H.cellspacing="0"
) , Sollteborder-collapse:collapse
dies den gleichen Effekt haben: Kein Leerzeichen zwischen Tabellenzellen. Diese Unterstützung ist jedoch fehlerhaft, da sie ein vorhandenescellspacing
HTML-Attribut für das Tabellenelement nicht überschreibt .Kurz gesagt: Für Nicht-Internet Explorer 5-7-Browser werden
border-spacing
Sie behandelt. Wenn Ihre Situation für Internet Explorer genau richtig ist (Sie möchten einen Zellenabstand von 0 und Ihre Tabelle hat ihn noch nicht definiert), können Sie ihn verwendenborder-collapse:collapse
.Hinweis: Eine großartige Übersicht über CSS-Eigenschaften, die auf Tabellen und für welche Browser angewendet werden können, finden Sie auf dieser fantastischen Quirksmode-Seite .
quelle
Standard
Das Standardverhalten des Browsers entspricht:
Cellpadding
Legt den Abstand zwischen dem Inhalt der Zelle und der Zellwand fest
Zellenabstand
Steuert den Abstand zwischen Tabellenzellen
Beide
Beides (speziell)
Versuch es selber!
Hier finden Sie den alten HTML-Weg, um dies zu erreichen.
quelle
quelle
cellspacing=0
gleichwertig. Das Äquivalent fürcellspacing=1
ist völlig anders. Siehe die akzeptierte Antwort.table td
undtable th
werden nurtd
undth
jeweils? Es funktioniert so oder so, aber ein kleinerer Selektor bedeutet etwas schnelleres Matchingtable > tr > td
undtable > tr > th
. Dies ist fast so schnell wietr
undth
und funktioniert garantiert, wenn Sie eine verschachtelte Tabelle haben. Nur mein 2ctable
Selektor benötigt? IIRC, a<td>
ist ungültig, es sei denn, innerhalb von a<tr>
.Das Festlegen von Rändern für Tabellenzellen hat meines Wissens keine wirklichen Auswirkungen. Das wahre CSS-Äquivalent für
cellspacing
istborder-spacing
- aber es funktioniert nicht in Internet Explorer.Sie können verwenden
border-collapse: collapse
, um den Zellenabstand wie erwähnt zuverlässig auf 0 zu setzen, aber für jeden anderen Wert denke ich, dass der einzige browserübergreifende Weg darin besteht, dascellspacing
Attribut weiterhin zu verwenden.quelle
border-collapse
funktioniert jedoch nur in IE 5-7, wenn für die Tabelle noch keincellspacing
Attribut definiert ist. Ich habe eine umfassende Antwort geschrieben, in der alle korrekten Teile der anderen Antworten auf dieser Seite zusammengeführt werden, falls dies hilfreich ist.Dieser Hack funktioniert für Internet Explorer 6 und höher, Google Chrome , Firefox und Opera :
Die
*
Deklaration gilt für Internet Explorer 6 und 7, und andere Browser ignorieren sie ordnungsgemäß.expression('separate', cellSpacing = '10px')
Gibt zurück'separate'
, aber beide Anweisungen werden ausgeführt, da Sie in JavaScript mehr Argumente als erwartet übergeben können und alle ausgewertet werden.quelle
Für diejenigen, die einen Zellabstandswert 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 dem Quirksmode- Link an anderer Stelle . Es scheint, dass es mit älteren Internet Explorer-Versionen möglicherweise nicht funktioniert.
quelle
Die einfache Lösung für dieses Problem lautet:
quelle
Wenn Sie möchten
cellspacing="0"
, vergessen Sie auch nicht , das Stylesheetborder-collapse: collapse
Ihrestable
Stylesheets hinzuzufügen .quelle
Wickeln Sie den Inhalt der Zelle mit einem div ein und Sie können alles tun, was Sie wollen, aber Sie müssen jede Zelle in eine Spalte einschließen, um einen einheitlichen Effekt zu erzielen. Zum Beispiel, um nur einen breiteren linken und rechten Rand zu erhalten:
So wird das CSS sein,
Ja, es ist ein Ärger. Ja, es funktioniert mit Internet Explorer. Tatsächlich habe ich dies nur mit Internet Explorer getestet, da dies alles ist, was wir bei der Arbeit verwenden dürfen.
quelle
Verwenden
border-collapse: collapse
Sie es einfach für Ihren Tisch undpadding
fürth
odertd
.quelle
Dieser Stil ist für vollständigen Reset für Tabellen - cellpadding , Cellspacing und Grenzen .
Ich hatte diesen Stil in meiner reset.css-Datei:
quelle
TBH. Für all das Fannying mit CSS können Sie genauso gut einfach verwenden,
cellpadding="0"
cellspacing="0"
da sie nicht veraltet sind ...Jeder andere, der Margen vorschlägt
<td>
, hat dies offensichtlich nicht versucht.quelle
quelle
Verwenden Sie einfach CSS-Auffüllregeln mit Tabellendaten:
Und für den Randabstand:
In älteren Versionen von Browsern wie Internet Explorer können jedoch aufgrund der unterschiedlichen Implementierung des Box-Modells Probleme auftreten.
quelle
Aus den W3C-Klassifikationen geht hervor, dass
<table>
s nur zur Anzeige von Daten gedacht sind.Basierend auf , dass ich fand es viel einfacher , eine zu schaffen
<div>
mit den Hintergründen und all das und hat eine Tabelle mit Daten schwebend über sie mitposition: absolute;
undbackground: transparent;
...Es funktioniert unter Chrome, Internet Explorer (6 und höher) und Mozilla Firefox (2 und höher).
Pannen werden verwendet (oder bedeuten sowieso) einen Abstandshalter zwischen den Behälterelementen zu schaffen, wie
<table>
,<div>
und<form>
nicht<tr>
,<td>
,<span>
oder<input>
. Wenn Sie es für andere Zwecke als Containerelemente verwenden, können Sie Ihre Website für zukünftige Browser-Updates anpassen.quelle
CSS:
quelle
Mit der CSS-Auffüllungseigenschaft können Sie das Auffüllen in den Tabellenzellen einfach festlegen. Dies ist eine gültige Methode, um den gleichen Effekt wie das Cellpadding-Attribut der Tabelle zu erzielen.
In ähnlicher Weise können Sie die Eigenschaft CSS-Rahmenabstand verwenden, um den Abstand zwischen benachbarten Tabellenzellenrändern wie das Zellenabstandsattribut anzuwenden. Um jedoch den Randabstand zu bearbeiten, muss der Wert der Eigenschaft "Randkollaps" getrennt sein, was standardmäßig der Fall ist.
quelle
Versuche dies:
Oder versuchen Sie Folgendes:
quelle
Ich benutzte
!important
nach dem Grenzkollaps gerneund es funktioniert bei mir in IE7. Es scheint das Zellabstandsattribut zu überschreiben.
quelle
!important
wäre nur erforderlich, um andere CSS-Einstellungen in einer komplexen Situation zu überschreiben (und selbst dann meistens einen falschen Ansatz).!important
, die als Kommentar anstelle einer anderen Antwort hätte eingefügt werden können.cell-padding
kannpadding
in CSS angegeben werden, währendcell-spacing
dies durch Festlegen derborder-spacing
Tabelle festgelegt werden kann.Geige .
quelle
Wenn
margin
nicht funktioniert, versuchen Sie , Setdisplay
vontr
aufblock
und dann wird Marge arbeiten.quelle
Bei Tabellen sind Cellspace und Cellpadding in HTML 5 veraltet.
Für den Zellenabstand müssen Sie jetzt den Randabstand verwenden. Und für das Cellpadding müssen Sie Border-Collapse 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.
quelle
quelle
In einer HTML-Tabelle kann das
cellpadding
undcellspacing
wie folgt festgelegt werden:Zum Auffüllen von Zellen :
Rufen Sie einfach
td/th
eine einfache Zelle anpadding
.Beispiel:
Code-Snippet anzeigen
Für den Zellabstand
Einfach anrufen
table
border-spacing
Beispiel:
Code-Snippet anzeigen
Mehr Tabellenstil durch CSS-Quelllink Hier erhalten Sie mehr Tabellenstil durch CSS .
quelle
Sie können einfach so etwas in Ihrem CSS tun, indem Sie
border-spacing
undpadding
:quelle
Wie wäre es, wenn Sie den Stil direkt zur Tabelle selbst hinzufügen? Dies wird nicht
table
in Ihrem CSS verwendet. Dies ist ein schlechter Ansatz, wenn Sie mehrere Tabellen auf Ihrer Seite haben:quelle
td { padding: ... }
odertable { border-spacing: ... }
, statt sie direkt an den Tisch anwenden. Die fügen nichts hinzu. Wie gesagt, wenn Sie mehrere Tabellen auf Ihrer Seite haben und diese nicht beeinflussen möchten, möchten Sie dies nicht! Wir brauchen keine ganze Seite mit Antworten mit der Aufschrift "Verwenden Sie das Stylesheet!", Wenn dies möglicherweise das Letzte ist, was Sie möchten, da Sie nur eine Zelle oder Tabelle formatieren möchten. Das ist, wenn es angewendet wirdtable
odertd
unerwünscht ist und das Erstellen einer ganz neuen Klasse dafür ist übertrieben.table#someId
).Ich schlage vor, dass dies und alle Zellen für die bestimmte Tabelle betroffen sind.
quelle
Sie können den folgenden Code überprüfen, indem Sie einfach einen erstellen
index.html
und ausführen.AUSGABE :
quelle