2011-12-01 12 views
11

Szybkie pytanie: w jaki sposób można to osiągnąć? (Patrz zdjęcie poniżej)Różne szerokości td w różnych wierszach w tabelach?

crazytable

Ustawianie td szerokość kabiny w zwykłym HTML i CSS nie miał wpływu.

Szerokość td MOŻE się różnić, ale tylko o tej samej szerokości dla każdego rzędu.

+9

Komentarz obowiązkowy: Jeśli potrzebujesz tego rodzaju układu, prawdopodobnie nie jest to dane, które muszą znajdować się w tabeli, ale powinny raczej używać div. –

+0

Jaki jest tego cel? Tabela jest dla danych tabelarycznych i wyobrażam to sobie trudno zrozumieć tabu lar dane w tabeli, która wygląda tak. Czy mogę zaproponować, żebyś spojrzał na inne elementy? '' s, może? – peirix

+0

Potrzebne do stylizacji bardzo dużej formy. – iceteea

Odpowiedz

16

Użyj trzech oddzielnych bloków <table>, każdy z pojedynczym rzędem o trzech kolumnach o różnych szerokościach.

6

Nie wierzę, że może łatwo w jednym stole.

Zamiast tego należy użyć atrybutu colspan, aby pokrywać się z komórkami w różnych wierszach.

na przykład użyć 6 kolumn, pierwszy wiersz mają colspan = 2, td, colspan = 2

Drugi wiersz mają, TD colspan = 2, TD i tak dalej.

To dość brudny - może warto rozważyć wyświetlanie danych w inny sposób, na przykład za pomocą DIV

+0

Używanie divów było moją pierwszą myślą, ale potrzebuję tego stołu do stylizowania gigantycznej formy, używając divów byłoby nawet tak niechlujnie, jak użycie powyższego kodu monstreus. – iceteea

+0

Dzięki. To dobre rozwiązanie. – kta

2

wziąć 1 główną tabelę z 3 tr iw każdym tr podjąć inną tabelę podrzędną z 3 kolumny niż zastosowanie css

4

To dużo dla oka, ale trzeba tabeli nadrzędnej z trzech rzędach, gdzie każdy wiersz zawiera inną tabelę z trzema kolumnami:

<table> 
    <tr> 
     <td> 
      <table> 
       <tr> 
        <!-- Set Width of Individual Cells Here --> 
        <td> 
        </td> 
        <td> 
        </td> 
        <td> 
        </td> 
       </tr> 
      </table> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <table> 
       <tr> 
        <!-- Set Width of Individual Cells Here --> 
        <td> 
        </td> 
        <td> 
        </td> 
        <td> 
        </td> 
       </tr> 
      </table> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <table> 
       <tr> 
        <!-- Set Width of Individual Cells Here --> 
        <td> 
        </td> 
        <td> 
        </td> 
        <td> 
        </td> 
       </tr> 
      </table> 
     </td> 
    </tr> 
</table> 

Oto a working jsFiddle to illustrate.

3

W rzeczywistości jest to możliwe bez tej podklady. Mam to teraz jako błąd w moim układzie. Wystarczy spróbować zabawy z uszczelek i marże wewnątrz komórek :(

„Bug” działa konsekwentnie w wielu przeglądarkach

Edit. Hunted że jeden

td { display: block; } 

nie rób tego w domu. ..

+2

Ta odpowiedź może zawierać poważne wyjaśnienia. czy mówisz, że wyświetlacz: blok rozwiązał twój problem? Co tropił ten jeden? Bardziej przejrzyste, mniej sprytne proszę. –

Powiązane problemy