Gibt es eine Möglichkeit, Spaltenbereiche ganz nach unten zu färben? Siehe Beispiel unten:
<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>
Und ich suche nach einer besseren Möglichkeit (weniger Code, nicht individuelle Farbgebung), um beispielsweise die Bereiche "Engine" und "Body" einzufärben, einschließlich aller Zellen darunter #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>
Antworten:
Ja, Sie können ... mit dem
<col>
Element:Hinweis : Mit dem
span
Attribut können Sie die Spaltendefinition auf mehr als eine Spalte anwenden.Siehe auch :
<colgroup>
quelle
<col span="3" />
für die überspannenden Spalten benötigen .colgroup
, die alle Spalten enthält.<tbody>
. Ich ziehe es einfach vor zu spezifizieren.col
Tags nicht so häufig ist, aber ich verwende es immer für SpaltenbreitenSie können den
nth-child
Selektor dafür verwenden:quelle
col
selbst ist viel besser (sauberer und schneller).Es ist im Allgemeinen am einfachsten, Zellen zu formatieren (falls gewünscht nach Spalten), aber Spalten können auf verschiedene Arten gestaltet werden. Eine einfache Möglichkeit besteht darin, Spalten in ein
colgroup
Element einzuschließen und Stile darauf festzulegen. Beispiel:quelle
col
Elemente innerhalb dercolgroup
s müssen nicht individuell gestaltet werden, können Sie auch das Set -span
Attribut für dascolgroup
selbst -<colgroup span="2">
- anstelle der Platzierungcol
Elemente in seinem Inneren.Sie können CSS3 verwenden: http://jsfiddle.net/snuggles08/bm98g8v8/
quelle
Ich würde die
nth-child
CSS-Pseudoklasse dafür verwenden:Code-Snippet anzeigen
quelle
Das folgende Gerät ist der n-te Kind-Selektor und sollte funktionieren ...
quelle
>
zwischen tr und td, da Sie sich die Mühe gemacht haben, tds nur innerhalb von trs nur innerhalb von Tabellen auszuwählen ... (beachten Sie die Tabellengruppen.)table tr td
ist redundant, datd
s immer intr
und sindtable
.Meine Version mit n-ten untergeordneten Ausdrücken:
Verwenden des CSS-Konzepts von Kaskadenregeln, um zuerst die Zellen zu färben und dann diejenigen zu entfärben, die transparent sein sollen. Der erste Selektor wählt alle Zellen nach der ersten aus, und der zweite wählt die fünfte Zelle aus, die transparent sein soll.
Überprüfen Sie diese interessante Referenz: http://learn.shayhowe.com/advanced-html-css/complex-selectors/
quelle
Dies ist eine alte Frage mit vielen tollen Antworten. Ich wollte nur die
-n
undnth-last-child
Selektoren hinzufügen , die noch nicht erwähnt wurden. Sie sind hilfreich, wenn Sie CSS auf mehrere Spalten anwenden, kennen jedoch möglicherweise nicht die Anzahl der Spalten vor dem Stylen oder haben mehrere Tabellen mit unterschiedlichen Breiten.jsFiddle: https://jsfiddle.net/3rpf5oht/2/
quelle