Je veux créer une table uniquement en utilisant <div>
et CSS.
Voici ma table d'échantillons.
<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>
Et le style :
<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>
Mais cette table ne fonctionne pas avec IE7 et les versions inférieures. S'il vous plaît donner votre solution et des idées pour moi. Merci.
0 votes
Jeter un coup d'œil à cet article
32 votes
Pourquoi voulez-vous utiliser
div
pour créer un tableau ?0 votes
Vérifiez ceci lien s'il vous plaît, cela peut être une bonne aide
0 votes
Vous remarquerez peut-être que votre class="headRow" est défini comme .divRow dans votre CSS. J'ai juste pensé que je devais le signaler.
4 votes
Voir le bon article 'Are CSS Tables Better Than HTML Tables ? [vanseodesign.com/css/tables/]](http://www.vanseodesign.com/css/tables/])
7 votes
Je pense que la raison pour laquelle les gens veulent utiliser un tableau basé sur un div au lieu d'un tableau normal est que....rendering/animations/reflows on a div based table is actually faster ( esp. for large DOM size) than rendering a normal table......see this.... stubbornella.org/content/2009/03/27/ cette.... developer.nokia.com/community/wiki/ au-dessus de cela, tous les plugins javascript à forte intensité de données comme slickgrid etc. utilisent divBasedtable.
1 votes
Juste une petite correction :
display:table-column
doit être utilisé pour imiter le<col>
tag, pour imiter<td>
utiliserdisplay: table-cell
0 votes
Autre correction : si votre tableau ne tient pas sur l'écran, vos cellules seront enveloppées. Raison : le
float: left
est à blâmer. Voir aussi : stackoverflow.com/questions/30001848/0 votes
"Designing without tables" Andrew/Schaeffer est un livre de plus de 300 pages écrit sur les avantages d'éviter les tableaux dans la plupart des cas. Le premier chapitre environ décrit les nombreux avantages d'éviter les tableaux.
2 votes
@huy Probablement parce que
div
sont plus flex que des tables !0 votes
@vladimir Veuillez noter que le lien est rompu. vanseodesign.com/css/tables semble être le lien correct. Malgré tout, je pense que l'article du lien se concentre sur la conception d'une mise en page complète à l'aide de tableaux div plutôt que d'avoir un tableau HTML pour le contenu tabulaire comme indiqué dans la question de l'utilisateur. Merci.
0 votes
Le conflit entre les approches HTML TABLE et CSS-DIV part généralement d'un mauvais point de départ. Il faut d'abord se poser la question cruciale ! Avez-vous l'intention de présenter des DONNÉES TABULAIRES ou avez-vous besoin de créer une MISE EN PAGE pour certaines caractéristiques/fonctionnalités. Si vous présentez des données purement TABULAIRES, tenez-vous en aux tableaux HTML. Si vous avez besoin d'une présentation fantaisiste, utilisez des balises HTML sémantiques appropriées combinées à des css. N'utilisez pas de DIV si vous pouvez utiliser des balises sémantiques. Les balises sémantiques vous aideront à structurer le contenu de manière judicieuse et encore plus infaillible. Par exemple ARTICLE, SECTION, etc.