2016-08-01 6 views
1

Hallo Ich habe Tabelle mit td und row span erstellt. Jetzt will ich die Struktur klarer durch bolding als die Hauptkategorie machen solcheGrenze um Zeile übergreifende Tabelle

enter image description here

https://plnkr.co/edit/4JM61bhjSqWR512PaWcS?p=preview

Wie kann ich das erreichen? Ich fürchte, dass ich jeden Zellenschrank manuell einzeln färben muss? Es scheint, dass das Boarder- und Coloring-Attribut entweder das td- oder das tr-Element betrifft. Ist es also möglich, einen solchen Effekt über die Spalte zu verteilen?

Antwort

0

versuchen Sie dies:

<tbody> 
    <tr class="colored"> 
    <td rowspan="6">A</td> 
    <td rowspan="3">B</td> 
    <td>C</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>D</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>E</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr class="colored"> 
    <td rowspan="3">B</td> 
    <td>F</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>G</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>H</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
</tbody> 
<tbody> 
    <tr class="colored"> 
    <td rowspan="6">A</td> 
    <td rowspan="4">B</td> 
    <td>C</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>D</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>E</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>F</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr class="colored"> 
    <td rowspan="2">B</td> 
    <td>G</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
    <tr> 
    <td>H</td> 
    <td> Input</td> 
    <td> Input</td> 
    </tr> 
</tbody> 

und diese CSS:

th, 
td { 
    border: 1px solid black; 
} 

tbody .colored td[rowspan]:not(:first-child) { 
    border-left: 2px solid red; 
    border-top: 2px solid red; 
    border-bottom: 2px solid red; 
} 

tbody .colored td:nth-of-type(n+2) { 
    border-top: 2px solid red; 
} 

tbody tr td:last-child { 
    border-right: 2px solid red; 
} 

tbody tr:last-child td:nth-child(n+1) { 
    border-bottom: 2px solid red; 
} 

https://plnkr.co/edit/VYFXhZf0fnZqmr1BN1z6?p=preview

+0

es keine saubere Lösung ist meine ich, aber ich denke, es ist Ihr Problem behebt. Ich werde versuchen, mehr CSS-Klassen verwenden, um die Grenzen zu gestalten –

+0

Vielen Dank! wenn Sie 2,3,4 rowspan angegeben haben. Ist das Bruteforce? Ich werde dynamische Daten haben (längere Tabelle usw.), aber die Struktur ändert sich nicht, wird es dann funktionieren? – Zanko

+0

ja ist es! Aber wenn die Struktur gleich bleibt, haben alle Zellen mit den Zeilen 2, 3 und 4 eine Grenze, was kein Problem darstellt. –

Verwandte Themen