Nello sviluppo web moderno mi imbatto in questo modello sempre più spesso. Sembra così:
<div class="table">
<div class="row">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
</div>
E nei CSS c'è qualcosa di simile:
.table { display: table; }
.row { display: table-row; }
.cell { display: table-cell; }
* (I nomi delle classi sono solo illustrativi; nella vita reale si tratta di nomi di classi normali che riflettono ciò di cui tratta l'elemento)
Di recente ho anche provato a farlo da solo perché ... sai, lo stanno facendo tutti.
Ma ancora non capisco. Perché stiamo facendo questo? Se hai bisogno di un tavolo, fai semplicemente uno scoppio <table>
e finisci . Sì, anche se è per il layout. Ecco a cosa servono le tabelle: disporre le cose in modo tabulare.
La migliore spiegazione che ho è che ormai tutti hanno sentito il mantra di "non usare le tabelle per il layout", quindi lo seguono ciecamente. Ma hanno ancora bisogno di una tabella per il layout (perché nient'altro ha le capacità di espansione di una tabella), quindi creano un <div>
(perché non è una tabella!) E quindi aggiungono CSS che la rende comunque una tabella.
Per tutto il mondo questo mi sembra come mettere ostacoli arbitrari inutili sulla tua strada e poi fare un lavoro extra per aggirarli.
L'argomento originale per allontanarsi dalle tabelle per il layout era che in seguito è difficile modificare un layout tabulare. Ma modificare un layout a "tabella falsa" è altrettanto difficile e per gli stessi motivi. In effetti, in pratica la modifica di un layout è sempre difficile e non è quasi mai sufficiente cambiare il CSS, se si desidera fare qualcosa di più serio di piccole modifiche. Si avrà bisogno di capire e cambiare la struttura HTML per gravi modifiche di progettazione. E le tabelle non rendono il lavoro più difficile o più facile dei div.
In realtà, l'unico modo di vedere che le tabelle potrebbero fare un layout difficile da modificare, è se si ab loro usato e creato un pasticcio empio. Puoi farlo anche con i div.
Quindi ... nel tentativo di trasformare questo da un rant in una domanda coerente: cosa mi sto perdendo? Quali sono i vantaggi effettivi dell'utilizzo di una "tabella delle faux" rispetto a una vera?
Informazioni sul collegamento duplicato: questo non è un suggerimento per utilizzare un altro tag o qualcosa del genere. Questa è una domanda sull'utilizzo di un <table>
vs display:table
.
table-layout:fixed
, dovrà caricarsi completamente prima di poter essere visualizzata. Con la moderna banda larga questo effetto è semplicemente meno evidente.