Usuwanie niechcianych granic komórek tabeli za pomocą CSS


91

Mam osobliwy i frustrujący problem. Aby uzyskać prosty znacznik:

<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>

Stosuję różne wartości koloru tła do nieparzystych elementów thead , tr i tr . Problem polega na tym, że w większości przeglądarek każda komórka ma niepożądane obramowanie, które nie jest kolorem żadnego z wierszy tabeli. Tylko w przeglądarce Firefox 3.5 tabela nie ma obramowań w żadnej komórce.

Chciałbym tylko wiedzieć, jak usunąć te obramowania w innych głównych przeglądarkach, aby jedyną rzeczą, którą widzisz w tabeli, były naprzemienne kolory wierszy.


2
Dziękujemy wszystkim, którzy zasugerowali dodanie border-collapse: collapse do CSS. Zrobiło to.
Bob

Odpowiedzi:


212

Musisz dodać to do swojego CSS:

table { border-collapse:collapse }

13
Zauważ, że musi to być zastosowane do tabeli , a nie do td . Właśnie popełniłem ten błąd i spędziłem ponad pół godziny, próbując dowiedzieć się, dlaczego to nie działa.
javawizard,


15

Zmodyfikuj swój kod HTML w ten sposób:

<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>

(Dodałem border="0" cellpadding="0" cellspacing="0" )

W CSS możesz wykonać następujące czynności:

table {
    border-collapse: collapse;
}

12

aby usunąć obramowanie, po prostu użyj css w ten sposób:

td {
 border-style : hidden!important;
}

8

Ustaw cellspacingatrybut tabeli na 0.

Możesz także użyć stylu CSS border-spacing: 0, ale tylko wtedy, gdy nie potrzebujesz obsługi starszych wersji IE.


1

Możesz także dodać

table td { border:0; }

powyższe jest równoważne ustawieniu cellpadding = "0"

usuwa wypełnienie automatycznie dodawane do komórek przez przeglądarki, które mogą zależeć od typu dokumentu i / lub dowolnego kodu CSS używanego do resetowania domyślnych stylów przeglądarki


1
Cellpadding to przestrzeń między zawartością tabeli a jej granicami td{padding:X}. Odstępy między komórkami to przestrzeń między obrzeżami każdej komórki („margines” między granicami komórek). Możesz ustawić, border-collapseaby naśladować działanie cellspacingatrybutu na tagu tabeli, ale nie jest to niezawodne.
MetalFrog

1

Po wypróbowaniu powyższych sugestii jedyną rzeczą, która zadziałała, była zmiana atrybutu obramowania na „0” w kolejnych sekcjach pliku style.css motywu podrzędnego (wykonaj operację „Znajdź”, aby zlokalizować każdy z nich - poniżej przedstawiono tylko fragmenty):

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

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

Wygląda więc później tak:

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

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

0

Spróbuj przypisać styl border: 0px; border-collapse: collapse;elementowi tabeli.


3
@Josh, prawda border: none?
Doug Neiner,

@DougNeiner Stary post, ale żaden i 0 nie są jednakowo poprawne. Lubię 0, bo muszę mniej pisać :)
Scott Simontis

-1

czasami nawet po wyczyszczeniu borders.

Powodem jest to, że masz obrazy w środku td, nadawanie obrazów display:blockrozwiązuje problem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.