Ich möchte eine Tabelle nur mit <div>
Tag und CSS erstellen .
Dies ist meine Beispieltabelle.
<body>
<form id="form1">
<div class="divTable">
<div class="headRow">
<div class="divCell" align="center">Customer ID</div>
<div class="divCell">Customer Name</div>
<div class="divCell">Customer Address</div>
</div>
<div class="divRow">
<div class="divCell">001</div>
<div class="divCell">002</div>
<div class="divCell">003</div>
</div>
<div class="divRow">
<div class="divCell">xxx</div>
<div class="divCell">yyy</div>
<div class="divCell">www</div>
</div>
<div class="divRow">
<div class="divCell">ttt</div>
<div class="divCell">uuu</div>
<div class="divCell">Mkkk</div>
</div>
</div>
</form>
</body>
Und Stil:
<style type="text/css">
.divTable
{
display: table;
width:auto;
background-color:#eee;
border:1px solid #666666;
border-spacing:5px;/*cellspacing:poor IE support for this*/
/* border-collapse:separate;*/
}
.divRow
{
display:table-row;
width:auto;
}
.divCell
{
float:left;/*fix for buggy browsers*/
display:table-column;
width:200px;
background-color:#ccc;
}
</style>
Diese Tabelle funktioniert jedoch nicht mit IE7 und einer niedrigeren Version. Bitte geben Sie Ihre Lösung und Ideen für mich an. Vielen Dank.
div
eine Tabelle erstellen?div
s mehr sind flex können als Tabellen!Antworten:
Runnable Snippet:
Code-Snippet anzeigen
quelle
div
s sollte nicht für tabellarische Daten verwendet werden. Das ist genauso falsch wie die Verwendung von Tabellen für das Layout.Verwenden Sie a
<table>
. Es ist einfach, semantisch korrekt und Sie sind in 5 Minuten fertig.quelle
Dies ist ein alter Thread, aber ich dachte, ich sollte meine Lösung veröffentlichen. Ich hatte kürzlich das gleiche Problem und habe es gelöst, indem ich einen dreistufigen Ansatz wie unten beschrieben verfolgt habe, der ohne komplexes CSS sehr einfach ist .
(HINWEIS: Für moderne Browser würde die Verwendung der Werte von Tabelle oder Tabellenzeile oder Tabellenzelle für die Anzeige des CSS-Attributs das Problem natürlich lösen. Der von mir verwendete Ansatz funktioniert jedoch in modernen und älteren Browsern gleich gut, da dies nicht der Fall ist Verwenden Sie diese Werte für die Anzeige des CSS-Attributs.)
3-SCHRITT EINFACHER ANSATZ
Verwenden Sie für Tabellen nur mit Divs den folgenden Ansatz, damit Sie Zellen und Zeilen wie in einem Tabellenelement erhalten.
.table
Klasse).row
Klasse).cell
Klasse)UPDATE 1
Um den Effekt zu umgehen, dass die gleiche Breite nicht in allen Zellen einer Spalte beibehalten wird, wie
thatslch
in einem Kommentar erwähnt, könnte man einen der beiden folgenden Ansätze anwenden.Geben Sie eine Breite für die
cell
Klasse anZelle {Anzeige: Inline-Block; Breite: 340px;}
Verwenden Sie das CSS moderner Browser wie folgt.
.table {display: table; } .row {display: table-row;} .cell {display: table-cell;}
quelle
Wenn
<table>
Ihnen etwas nicht gefällt, können Sie möglicherweise die Datei zurücksetzen ?oder
Wenn Sie dies für das Layout der Seite benötigen, lesen Sie die Beispiele für das CSSplay-Layout zum Entwerfen von Websites ohne Tabellen.
quelle
Ich sehe keine Antwort in Bezug auf Grid-Css. Ich denke, es ist ein sehr eleganter Ansatz: grid-css unterstützt sogar Zeilen- und Spaltenbereiche. Hier finden Sie einen sehr guten Artikel:
https://medium.com/@js_tut/css-grid-tutorial-filling-in-the-gaps-c596c9534611
quelle
Verwenden Sie den richtigen Dokumenttyp. es wird das Problem lösen. Fügen Sie die folgende Zeile oben in Ihre HTML-Datei ein:
quelle
Ein bisschen OFF-TOPIC, kann aber jemandem für ein saubereres HTML helfen ... CSS
HTML
Funktioniert unter Chrome und Firefox
quelle
<div>
Elemente enthalten? Sie wollen wahrscheinlich.common_table div > div
Beim Erstellen eines benutzerdefinierten Satzes von Layout-Tags habe ich eine andere Antwort auf dieses Problem gefunden. Hier finden Sie die benutzerdefinierten Tags und ihre CSS-Klassen.
HTML
CSS
Der Schlüssel, um leere Zellen und Zellen im Allgemeinen auf die richtige Größe zu bringen, ist Box-Sizing und Padding. Border macht das Gleiche, erstellt jedoch eine Linie in der Zeile. Polsterung nicht. Und obwohl ich es noch nicht ausprobiert habe, denke ich, dass Margin genauso wie Padding agieren wird, indem erzwingt und leert, dass die Zelle richtig gerendert wird.
quelle