2009-05-28 8 views
5

Mam pusty wiersz tabeli tylko dla oddzielenia rzędów.Czy zostanie wyświetlony wiersz tabeli, jeśli wszystkie jego komórki są puste?

<tr> 
    <td colspan="5"></td> 
</tr> 

Jest renderowany w IE, FF, Opera i Safari. Pytanie brzmi, czy powinienem umieścić w nim jakieś treści, czy też można je pozostawić tak, jak jest?

odczuwalna:

<tr> 
    <td colspan="5">&nbsp;</td> 
</tr> 
+0

Użycie pustego wiersza dla odstępów powoduje przerwanie struktury danych. Prawdopodobnie lepiej byłoby owijać różne bloki danych w elementach tad lub tbody i stylizować je w celu uzyskania odstępów. – Quentin

Odpowiedz

11

Cóż można umieścić &nbsp; jako zawartość kolumny, aby upewnić się, że są wyświetlane wiersze. Lepszym sposobem jest użycie CSS do odstępów.

+1

+1 Powinieneś naprawdę używać CSS do tego –

+1

CSS nie zadziała. Chciałbym również wypełnić komórki kolorem tła, a separatory pozostaną białe. Gdybym kładł wyściółkę na komórkach, wypełniony byłby również obszar wypełnienia. Nie chcę tego. – User

0

Być może już to wypróbowałeś, ale jeśli próbujesz dodać trochę spacji między wierszami, próbujesz dodać dopełnienie.

cellspacing = długość (odstęp między komórkami)

CELLPADDING = długość (odstęp w komórkach)

Karl

1

jeśli chcesz umieścić zawartość wewnątrz, chciałbym użyć no-breaking-space : &nbsp;, a nie normalny pusty

6

Czy pusty wiersz ma służyć celowi, czy jest to wyłącznie do układu? Jeśli to drugie, warto rozważyć upuszczenie pustego wiersza i zapewnienie separacji za pomocą CSS. Na przykład.

<tr class="separate-below"> 
    <td>Data before separater</td><td>More Data</td>... 
</tr> 
<tr> 
    <td>Data after separater</td><td>More Data</td>... 
</tr> 

z następującym w arkuszu stylów:

TR.separate-below TD,TR.separate-below TH { 
    border-bottom: 1em solid white; /* use the background colour of a cell here */ 
} 

Alternatywnie, można użyć wielu <TBODY> elementów do bloków grupy wierszy ze sobą (dodanie reguł = „grupy” do elementu tabeli powoduje <tbody> elementy, aby uzyskać poziomą ramkę u góry iu dołu, oraz element colgroup >, aby uzyskać obramowanie po ich lewej i prawej stronie):

<table rules="groups"> 
<thead> 
    <tr><th>Header</th><th>Header</th>...</tr> 
</thead> 
<tbody> 
    <tr><td>Data</td><td>Data</td>...</tr> 
    <tr><td>Data</td><td>Data</td>...</tr> 
    ... 
</tbody> 
<tbody> 
    <tr><td>Data</td><td>Data</td>...</tr> 
    ... 
</tbody> 
... 
</table> 
3

Jak można zobaczyć w this example z W3Schools przy użyciu &nbsp; jest najlepszym sposobem, aby zrobić to, co chcesz.

+0

1. w3fools, 2. link rot. Poza tym nie jestem przeciwko '-internatywne komórki' -ing ' . – vaxquis

0

Aby upewnić się, że puste komórki są wyświetlane następujące CSS można stosować:

table { empty-cells:show; } 
+0

Nie działa, jeśli wszystkie komórki z wiersza są puste. – Matijs

0

można korzystać z wielu tbody znaczników do wierszy tabeli grupy. Jest całkowicie poprawny i bardziej semantyczny.

1

Jest to bardzo stare pytanie, ale jeśli ktoś jeszcze potrzebuje rozwiązania (problem istnieje z display: table-cell lub table-row elements)

oto rozwiązanie:

.emptyElement:after{ 
    content: "\00a0"; 
} 
1

chciałem dodać moje rozwiązanie, które jest modyfikacja rozwiązania @Dariusz Sikorski.

td:empty:after, th:empty:after { 
    content: "\00a0"; 
} 
Powiązane problemy