2016-04-19 9 views
0

Ich versuche herauszufinden, wie man ein Rasterlayout wie das Bild in diesem Beitrag mit HTML und CSS erstellt. Ich habe Bootstrap in meinem Projekt installiert, verwende es aber nicht für sein Grid-System, da es nur bis zu 12 Spalten reicht. In einigen Fällen wird es mehr als 12 Spalten geben.Erstellen einer komplexen Excel-ähnlichen Gitterstruktur mit HTML und CSS

Hier sind die CSS-Klassen Ich habe mir zu helfen:

.x-grid { 
    width: 3000px; 
} 

.x-row { 
    width: 100%; 
} 

.x-cell { 
    float: left; 
    border: 1px solid black; 
    height: 20px; 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 

.x-cell span { 
    display: block; 
} 

Sehen Sie bitte diesen jsFiddle für meinen ersten Versuch.

Ich habe Probleme mit dem Hinzufügen von Zeilen innerhalb von Zeilen, um das Aussehen im Bild zu erreichen. Zum Beispiel müssen drei Zeilen innerhalb der Primary Item Reihe stehen, die eine Höhe der Primary Reihe geteilt durch 3 haben. Dann 5 Reihen in jeder dieser Reihen. Ich kann es einfach nicht bekommen, vielleicht sind es meine CSS Klassen sind nicht richtig eingerichtet, um so etwas zu tun.

Bitte beachten Sie, dass der Grund für das .ws-Grid eine Breite von 3000px hat, da es sich um eine Zahl handelt, die sich dynamisch ändert, basierend darauf, wie viele Spalten im Raster enthalten sein müssen, damit der Inhalt gut aussieht. Und ja, der Benutzer muss scrollen.

+2

Welche Art von _data_ werden Sie eventuell damit anzeigen? Es könnte ein Fall sein, in dem die Verwendung von HTML-Tabellenelementen am sinnvollsten ist. – CBroe

+0

Sie könnten versuchen [Tabelle anzeigen] (http://www.mattboldt.com/kicking-ass-with-display-table/). Funktioniert sehr ähnlich dem 'table'-Element, beschränkt Sie jedoch darauf, 'colspan' oder' rowspan' nicht verwenden zu können. –

+0

Ist es nur für die Anzeige von Daten oder auch für die Bearbeitung durch den Benutzer? Sie würden dann besser eine JS-Bibliothek von ausgefallenen Komponenten oder ein Skript wie [HandsonTable] (http://stackoverflow.com/questions/tagged/handsontable) verwenden (sie lügen nicht, wenn sie "Excel-like" sagen, obwohl Sie es brauchen die Pro-Version für verschachtelte Header) – FelipeAls

Antwort

1

Versuchen dieser Seite http://www.tablesgenerator.com/html_tables

ich in der Lage war, diese in etwa 10 Minuten zu erzeugen. Sie können dann weitermachen, um es dynamischer zu machen, je nachdem, wie Sie es für richtig halten. Aber zumindest ist die Struktur da.

Hoffe, es hilft:

https://jsfiddle.net/jk4eg1z0/

Begleitcode:

<style type="text/css"> 
.tg {border-collapse:collapse;border-spacing:0;} 
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} 
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} 
.tg .tg-yzt1{background-color:#efefef;vertical-align:top} 
.tg .tg-uhkr{background-color:#ffce93} 
.tg .tg-i6eq{background-color:#ffccc9;vertical-align:top} 
.tg .tg-nvd0{background-color:#f8a102;vertical-align:top} 
.tg .tg-gr78{background-color:#ffce93;vertical-align:top} 
.tg .tg-c57o{background-color:#ecf4ff;vertical-align:top} 
.tg .tg-2s1i{background-color:#fd6864;vertical-align:top} 
.tg .tg-yw4l{vertical-align:top} 
</style> 
<table class="tg"> 
     <tr> 
     <th class="tg-uhkr" colspan="4">Primary Header</th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     <th class="tg-gr78"></th> 
     </tr> 
     <tr> 
     <td class="tg-c57o" rowspan="20">Primary Item 1</td> 
     <td class="tg-c57o" colspan="3">Sub-Header 1</td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     <td class="tg-c57o"></td> 
     </tr> 
     <tr> 
     <td class="tg-c57o" colspan="6">Sub-Header 2</td> 
     <td class="tg-c57o" colspan="4"></td> 
     <td class="tg-c57o" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-i6eq" rowspan="6">Sub-item 1</td> 
     <td class="tg-nvd0" colspan="2">Title 1</td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     </tr> 
     <tr> 
     <td class="tg-2s1i" colspan="5">Title 2</td> 
     <td class="tg-2s1i" colspan="4"></td> 
     <td class="tg-2s1i" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2">Title 3</td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2" rowspan="2">Title 4</td> 
     <td class="tg-yw4l" colspan="3"></td> 
     <td class="tg-yzt1" colspan="4"></td> 
     <td class="tg-yw4l" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yw4l" colspan="3"></td> 
     <td class="tg-yw4l" colspan="4"></td> 
     <td class="tg-yzt1" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2">Title 5</td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     </tr> 
     <tr> 
     <td class="tg-i6eq" rowspan="6">Sub-item 1</td> 
     <td class="tg-nvd0" colspan="2">Title 1</td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     </tr> 
     <tr> 
     <td class="tg-2s1i" colspan="5">Title 2</td> 
     <td class="tg-2s1i" colspan="4"></td> 
     <td class="tg-2s1i" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2">Title 3</td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2" rowspan="2">Title 4</td> 
     <td class="tg-yw4l" colspan="3"></td> 
     <td class="tg-yzt1" colspan="4"></td> 
     <td class="tg-yw4l" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yw4l" colspan="3"></td> 
     <td class="tg-yw4l" colspan="4"></td> 
     <td class="tg-yzt1" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2">Title 5</td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     </tr> 
     <tr> 
     <td class="tg-i6eq" rowspan="6">Sub-item 1</td> 
     <td class="tg-nvd0" colspan="2">Title 1</td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     <td class="tg-nvd0"></td> 
     </tr> 
     <tr> 
     <td class="tg-2s1i" colspan="5">Title 2</td> 
     <td class="tg-2s1i" colspan="4"></td> 
     <td class="tg-2s1i" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2">Title 3</td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2" rowspan="2">Title 4</td> 
     <td class="tg-yw4l" colspan="3"></td> 
     <td class="tg-yzt1" colspan="4"></td> 
     <td class="tg-yw4l" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yw4l" colspan="3"></td> 
     <td class="tg-yw4l" colspan="4"></td> 
     <td class="tg-yzt1" colspan="4"></td> 
     </tr> 
     <tr> 
     <td class="tg-yzt1" colspan="2">Title 5</td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     <td class="tg-yzt1"></td> 
     </tr> 
    </table> 

P. S. Um die verbundenen Zellen zu erstellen, verwenden Sie die Option Zellen zusammenführen auf der Website.

+0

Erstaunlich .... Vielen Dank. Das wird mir so viel Zeit sparen. –

+0

Keine Sorge, ich bin froh, dass ich helfen konnte. –

0

Bootstrap kann es tun zu

<div class="row"> <div class="col-xs-9">.col-xs-9</div> <div class="col-xs-4">.col-xs-4<br>Since 9 + 4 = 13 &gt; 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div> <div class="col-xs-6">.col-xs-6<br>Subsequent columns continue along the new line.</div> </div>