Entfernen unerwünschter Tabellenzellenränder mit CSS

84

Ich habe ein merkwürdiges und frustrierendes Problem. Für das einfache Markup:

<table>
    <thead>
        <tr><th>1</th><th>2</th><th>3</th></tr>
     </thead>
    <tbody>
        <tr><td>a</td><td>b></td><td>c</td></tr>
        <tr class='odd'><td>x</td><td>y</td><td>z</td></tr>
    </tbody>
</table>

Ich wende unterschiedliche Hintergrundfarbenwerte auf die ungeraden Elemente thead , tr und tr an . Das Problem ist, dass in den meisten Browsern jede Zelle einen unerwünschten Rand hat, der nicht die Farbe einer der Tabellenzeilen hat. Nur in Firefox 3.5 hat die Tabelle in keiner Zelle Rahmen.

Ich möchte nur wissen, wie diese Ränder in den anderen Hauptbrowsern entfernt werden, damit Sie in der Tabelle nur die abwechselnden Zeilenfarben sehen.

Bob
quelle
2
Vielen Dank an alle, die vorgeschlagen haben, Border-Collapse hinzuzufügen: Collapse zum CSS. Das hat es geschafft.
Bob

Antworten:

206

Sie müssen dies zu Ihrem CSS hinzufügen:

table { border-collapse:collapse }
Doug Neiner
quelle
12
Beachten Sie, dass dies auf die Tabelle angewendet werden muss , nicht auf die td . Ich habe gerade diesen Fehler gemacht und mehr als eine halbe Stunde damit verbracht herauszufinden, warum es nicht funktioniert hat.
Javawizard
16

füge etwas CSS hinzu:

td, th {
   border:none;
}
Dave Markle
quelle
1
funktioniert nicht für mich auf Chrom 60.0.3112.113, wenn auf Tabelle angewendet
Abdullah Gheith
15

Ändern Sie Ihren HTML-Code wie folgt:

<table border="0" cellpadding="0" cellspacing="0">
    <thead>
        <tr><td>1</td><td>2</td><td>3</td></tr>
     </thead>
    <tbody>
        <tr><td>a</td><td>b></td><td>c</td></tr>
        <tr class='odd'><td>x</td><td>y</td><td>z</td></tr>
    </tbody>
</table>

(Ich fügte hinzu border="0" cellpadding="0" cellspacing="0")

In CSS können Sie Folgendes tun:

table {
    border-collapse: collapse;
}
Gabriel McAdams
quelle
12

Um den Rand zu entfernen, verwenden Sie CSS wie folgt:

td {
 border-style : hidden!important;
}
Amine_Dev
quelle
8

Setzen Sie das cellspacingAttribut der Tabelle auf 0.

Sie können auch den CSS-Stil verwenden, border-spacing: 0jedoch nur, wenn Sie ältere IE-Versionen nicht unterstützen müssen.

SLaks
quelle
1

Möglicherweise möchten Sie auch hinzufügen

table td { border:0; }

Das Obige entspricht dem Setzen von cellpadding = "0".

Dadurch wird das Auffüllen von Zellen, die von Browsern automatisch zu Zellen hinzugefügt werden, entfernt. Dies kann vom Doctype und / oder einem CSS abhängen, das zum Zurücksetzen der Standardbrowser-Stile verwendet wird

falc0n
quelle
1
Cellpadding ist der Raum zwischen dem Tabelleninhalt und seinen Grenzen td{padding:X}. Der Zellabstand ist der Abstand zwischen den Bourdries jeder Zelle ("Rand" zwischen den Zellrändern). Sie können festlegen border-collapse, dass das cellspacingAttribut auf dem Tabellen-Tag nachgeahmt wird, es ist jedoch nicht kinderleicht.
MetalFrog
1

Nachdem ich die obigen Vorschläge ausprobiert hatte, funktionierte das einzige, was für mich funktionierte, das Ändern des Rahmenattributs in "0" in den folgenden Abschnitten der Datei style.css eines untergeordneten Themas (führen Sie eine "Suchen" -Operation aus, um die einzelnen Vorschläge zu finden - die folgenden sind nur Schnipsel):

.comment-content table {
    border-bottom: 1px solid #ddd;

.comment-content td {
    border-top: 1px solid #ddd;
    padding: 6px 10px 6px 0;
}

So sieht es danach aus:

.comment-content table {
    border-bottom: 0;

.comment-content td {
    border-top: 0;
    padding: 6px 10px 6px 0;
}
Jessica Escobar
quelle
0

Versuchen Sie, border: 0px; border-collapse: collapse;dem Tabellenelement den Stil zuzuweisen.

Josh Anderson
quelle
3
@ Josh ist es nicht border: none?
Doug Neiner
@DougNeiner Alter Beitrag, aber keiner und 0 sind beide gleichermaßen gültig. Ich mag 0, weil ich weniger tippen muss :)
Scott Simontis
-1

manchmal sogar nach dem Löschen borders.

Der Grund ist, dass Sie Bilder in der haben td, die Bilder display:blocklösen.

Bresleveloper
quelle