Dans le développement web moderne, je rencontre de plus en plus souvent ce modèle. Cela ressemble à ceci:
<div class="table">
<div class="row">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
</div>
Et en CSS, il y a quelque chose comme:
.table { display: table; }
.row { display: table-row; }
.cell { display: table-cell; }
* (Les noms de classe sont uniquement illustratifs; dans la vie réelle, ce sont des noms de classe normaux reflétant le contenu de l'élément)
J'ai même récemment essayé de le faire moi-même parce que ... vous savez, tout le monde le fait.
Mais je ne comprends toujours pas. Pourquoi fait-on ça? Si vous avez besoin d’une table, faites-en simplement une explosion <table>
et finissez -en. Oui, même si c'est pour la mise en page. C’est à quoi servent les tables: disposer les éléments sous forme de tableau.
La meilleure explication que j'ai est que maintenant tout le monde a entendu le mantra de "n'utilisez pas de tableaux pour la mise en page", donc ils le suivent aveuglément. Mais ils ont toujours besoin d' un tableau pour la mise en page (car rien d'autre ne possède les capacités étendues d'un tableau), ils créent donc un <div>
(car ce n'est pas un tableau!), Puis ajoutent du CSS qui en fait un tableau.
Pour le monde entier, cela me semble mettre sur votre chemin des obstacles inutiles et arbitraires, puis un travail supplémentaire pour les contourner.
L'argument initial pour s'éloigner des tableaux pour la présentation était qu'il était difficile de modifier une disposition tabulaire par la suite. Mais modifier une mise en page "faux-table" est tout aussi difficile et pour les mêmes raisons. En fait, dans la pratique, modifier une mise en page est toujours difficile, et il ne suffit presque jamais de changer le code CSS si vous voulez faire quelque chose de plus grave que de simples modifications mineures. Vous aurez besoin de comprendre et de modifier la structure HTML pour les changements de conception graves. Et les tables ne rendent pas le travail plus difficile ou plus facile que les divs.
En fait, la seule façon pour moi de rendre les tableaux difficiles à modifier, c’est si vous les utilisiez et si vous créiez un désordre impie. Vous pouvez aussi le faire avec des divs.
Alors ... dans le but de changer cela d'un coup de gueule en une question cohérente: qu'est-ce qui me manque? Quels sont les avantages réels d'utiliser une "fausse table" par rapport à une vraie?
À propos du lien en double: Il ne s'agit pas d'une suggestion d'utiliser une autre balise ou quelque chose d'autre. Ceci est une question sur l' utilisation d' un <table>
contre display:table
.
table-layout:fixed
, elle devra être entièrement chargée avant de pouvoir être affichée. Avec le haut débit moderne, cet effet est simplement moins perceptible.