2010-01-11 17 views
66

Mam specyficzny i frustrujący problem. Dla prostego oznakowania:Usuwanie niechcianych obramowań komórek tabeli za pomocą CSS

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

I stosuje różne wartości background-color do THEAD, tr i tr nieparzystych elementów. Problem polega na tym, że w większości przeglądarek każda komórka ma niepożądaną obramowanie, które nie jest kolorem żadnego z wierszy tabeli. Tylko w Firefoksie 3.5 tabela nie ma granic w żadnej komórce.

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

+0

Jakiego koloru jest granica? – SLaks

+0

Dziękuję wszystkim, którzy zasugerowali dodanie obramowania na granicy: zwinięcie do CSS. Tak było. – Bob

Odpowiedz

169

Trzeba dodać to do Twojego CSS :

table { border-collapse:collapse } 
+10

Należy zauważyć, że musi to być zastosowane do _table_, a nie _td_. Właśnie popełniłem ten błąd i spędziłem ponad pół godziny, próbując zrozumieć, dlaczego to nie działa. – javawizard

12

zmodyfikować kod HTML tak:

<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żna wykonać następujące czynności:

table { 
    border-collapse: collapse; 
} 
+3

CSS jest preferowanym sposobem. –

+0

Zmodyfikowałem moją odpowiedź na css –

0

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

+3

@Josh nie jest to 'border: none'? –

+0

@DougNeiner Stary wpis, ale żaden i 0 są jednakowo ważne. Lubię 0, bo muszę pisać mniej :) –

6

Ustaw atrybut cellspacing tabeli na .

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

9

dodać trochę CSS:

td, th { 
    border:none; 
} 
+1

nie działa dla mnie na chrome 60.0.3112.113 kiedy zastosowany do tabeli –

1

Można również dodać

table td { border:0; } 

wyżej jest równoważna = "0"

pozbywa padding automatycznego ustawiania cellpadding dodane 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}'. Cellspacing to przestrzeń pomiędzy giełdami komórek ("margines" między granicami komórek). Możesz ustawić 'border-collapse', aby naśladować to, co robi atrybut' cellspacing' w znaczniku table, ale nie jest to niezawodne. – MetalFrog

1

Po wypróbowaniu powyższych sugestii, jedyną rzeczą, która zadziałała, była zmiana atrybutu border na "0" w kolejnych sekcjach stylu child.css (wykonaj operację "Znajdź", aby zlokalizować każdą z nich - są to: tylko fragmenty):

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

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

Zatem patrząc jak to potem:

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

.comment-content td { 
    border-top: 0; 
    padding: 6px 10px 6px 0; 
} 
-2
<td style=" border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;"> 

A jeśli chcesz, możesz do czegoś takiego

$style = ' style=" border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;"'; 

<td $style>bla bla</td><td $style>bla bla</td><td $style>bla bla</td><td $style>bla bla</td> 
+0

Nie rozumiem, jaki jest styl $ w tej odpowiedzi. Czy używasz języka przetwarzania po stronie serwera do ustawienia atrybutu stylu? –

+0

Style wbudowane Boo. – mopsyd

-1

czasami nawet po usunięciu s. border.

Powodem jest to, że masz obrazy wewnątrz td, dzięki czemu obrazy rozwiązują je przez display:block.

2

usunąć granicę, Juste użyciu css tak:

td { 
border-style : hidden!important; 
} 
Powiązane problemy