У сучасній веб-розробці я все частіше зустрічаю цю закономірність. Це виглядає приблизно так:
<div class="table">
<div class="row">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
</div>
А в CSS є щось на кшталт:
.table { display: table; }
.row { display: table-row; }
.cell { display: table-cell; }
* (Назва класу лише ілюстративна; в реальному житті це звичайні назви класів, що відображають те, про що йдеться в елементі)
Я навіть нещодавно намагався це робити сам, бо ... знаєте, всі це роблять.
Але я все одно не розумію. Чому ми це робимо? Якщо вам потрібна таблиця, то просто зробіть підрив <table>
і зробіть з нею. Так, навіть якщо це для планування. Саме для цього потрібні таблиці - розкладка матеріалів у табличному вигляді.
Найкраще пояснення, яке я маю, - це те, що до цього часу всі чули мантру "не використовувати таблиці для планування", тому вони сліпо слідують за нею. Але їм все-таки потрібна таблиця для компонування (адже більше нічого не має розширюваних можливостей таблиці), тому вони складають <div>
(бо це не таблиця!), А потім додають CSS, який так чи інакше робить його таблицею.
У всьому світі це мені здається, як ставити на своєму шляху довільні непотрібні перешкоди, а потім робити зайву роботу, щоб їх обійти.
Оригінальним аргументом для відходу від таблиць для компонування було те, що важко змінити табличний макет згодом. Але змінити макет "штучної таблиці" так само важко і з тих же причин. Насправді, на практиці змінювати макет завжди важко, і майже завжди достатньо просто змінити CSS, якщо ви хочете зробити щось більш серйозне, ніж незначні зміни. Ви будете повинні зрозуміти і змінити HTML структуру для серйозних конструктивних змін. І таблиці не роблять завдання складнішим або легшим, ніж діви.
Насправді, єдиний спосіб, коли я бачу, що таблиці можуть ускладнити макет, це якщо ви ab їх використали і створили безбожний безлад. Ви можете зробити це і з дівами.
Отже ... у спробі змінити це з рентгена на цілісне запитання: чого я пропускаю? Які фактичні переваги від використання «штучної таблиці» над реальною?
Про повторюване посилання: це не пропозиція використовувати інший тег чи щось подібне. Це питання про використання <table>
VS display:table
.
table-layout:fixed
, його потрібно буде повністю завантажити, перш ніж його можна буде відобразити. У сучасній широкосмуговій мережі цей ефект просто менш помітний.