Czy istnieje sposób na pokolorowanie rozpiętości kolumn w dół? Zobacz przykład początkowy poniżej:
<table border="1">
<tr>
<th>Motor</th>
<th colspan="3">Engine</th>
<th>Car</th>
<th colspan="2">Body</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
<tr>
<td>7</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
Szukam lepszego sposobu (mniej kodu, nieindywidualne kolorowanie) na kolorowanie, na przykład rozpiętości „silnika” i „ciała”, w tym wszystkie komórki pod nimi w #DDD
<style>
.color {
background-color: #DDD
}
</style>
<table border="1">
<tr>
<th>Motor</th>
<th colspan="3" class="color">Engine</th>
<th>Car</th>
<th colspan="2" class="color">Body</th>
</tr>
<tr>
<td>1</td>
<td class="color">2</td>
<td class="color">3</td>
<td class="color">4</td>
<td>5</td>
<td class="color">6</td>
<td class="color">7</td>
</tr>
<tr>
<td>7</td>
<td class="color">1</td>
<td class="color">2</td>
<td class="color">3</td>
<td>4</td>
<td class="color">5</td>
<td class="color">6</td>
</tr>
</table>
Odpowiedzi:
Tak, możesz ... używając
<col>
elementu:Uwaga : Możesz użyć
span
atrybutu, aby definicja kolumny miała zastosowanie do więcej niż jednej kolumny.Zobacz też :
<colgroup>
źródło
<col span="3" />
kolumn rozpinających.colgroup
zawierającego wszystkie kolumny.<tbody>
. Po prostu wolę sprecyzować.col
tagu nie jest tak powszechne, ale używam go zawsze dla szerokości kolumnMożesz do tego użyć
nth-child
selektora:źródło
col
jest o wiele lepsza niż ta (czystsza i szybsza).Ogólnie rzecz biorąc, najłatwiej jest stylizować komórki (w razie potrzeby według kolumny), ale kolumny można określać na różne sposoby. Prostym sposobem jest zawijanie kolumn w
colgroup
elemencie i ustawianie dla niego stylów. Przykład:źródło
col
elementy wewnątrzcolgroup
s nie wymagają indywidualnego stylizowania, możesz również ustawićspan
atrybut na samymcolgroup
sobie -<colgroup span="2">
- zamiast umieszczaćcol
w nim elementy.Możesz użyć CSS3: http://jsfiddle.net/snuggles08/bm98g8v8/
źródło
Chciałbym użyć
nth-child
CSS pseudo-klasy do tego:Pokaż fragment kodu
źródło
Poniższe narzędzie jest selektorem n-tego dziecka i powinno działać ...
źródło
>
między tr a td, ponieważ zadałeś sobie trud wybierając tds tylko wewnątrz trs tylko w tabelach ... (uwaga na grupy tabel).table tr td
jest zbędne, ponieważtd
są zawsze w środkutr
itable
.Moja wersja używająca wyrażeń nth-child:
Korzystanie z koncepcji CSS reguł kaskadowych, aby najpierw pokolorować komórki, a następnie odbarwić te, które chcę, aby były przezroczyste. Pierwszy selektor wybiera wszystkie komórki po pierwszej, a drugi wybiera piątą komórkę jako przezroczystą.
Sprawdź tę interesującą referencję: http://learn.shayhowe.com/advanced-html-css/complex-selectors/
źródło
To stare pytanie z wieloma świetnymi odpowiedziami. Chciałem tylko dodać selektory
-n
inth-last-child
, które nie zostały jeszcze wymienione. Są pomocne przy stosowaniu CSS do wielu kolumn, ale mogą nie znać liczby kolumn przed stylizacją lub mieć wiele tabel o różnych szerokościach.jsFiddle: https://jsfiddle.net/3rpf5oht/2/
źródło