2010-09-07 17 views
23

Chcę różne style w każdej kolumnie tabeli. Czytałem, że można to zrobić, używając <colgroup> lub <col>, ale nie miałem szczęścia. Mam przykład here i nic nie wydaje się zmieniać. czy robię coś źle? Czy to działa na xhtml?Element tabeli grupowej HTML nie działa?

Wiem, że mogę dodać atrybut "klasy" na każdym <td>, ale wydaje się to słabe.

Odpowiedz

32

Zgadza się. Chociaż sama usługa colgroup jest obsługiwana przez wszystkie przeglądarki, this isn't true for the attributes of the inner col element. Z możliwych atrybutów, tylko width jest obsługiwany we wszystkich przeglądarkach. Ale w przeciwieństwie do CSS, <col width=""> obsługuje tylko piksele i szerokości procentowe.

Nie używaj go. Zamiast tego utwórz klasy CSS i przypisz je do każdego td. Tak, to jest do bani.

EDIT Updated powyższy link do strony z lepszych informacji

+0

thxs! wygląda na to, że html5 sprawi, że colgroup będzie działał ... ale do tego czasu użyję klas lub n-tego-dziecka – pleasedontbelong

+3

Strona, do której się odwołujesz, mówi: Tag jest obsługiwany we wszystkich głównych przeglądarkach_. Może powinieneś usunąć odwołanie, ponieważ są one dezinformować ludzi. –

+0

Zgadzam się z @JannieT, to wydaje się być obsługiwane przez wszystkie główne przeglądarki. Zobacz: http://reference.sitepoint.com/html/colgroup i http://webdesign.about.com/od/htmltags/p/bltags_colgroup.htm –

5

Określ table-layout auto zamiast stałej ...

table {table-layout: auto;} 

Moja osobista strona obsługuje wiele tematów i widzę te rodzaje różnic cały czas.

+1

Fantastyczna właściwość! :) https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout –

1

Można użyć selektorów css, aby uzyskać podobne wyniki bez dodawania dodatkowych klas.

Jako przykład, jeśli chcesz dać konkretny styl do drugiej kolumny można użyć:

table>tbody>td:nth-child(2){font-weight: bolder;}