Чому ми не повинні використовувати <table> у дизайні?


41

Які існують чіткі та логічні причини, чому ми не повинні створювати веб-сайти за допомогою таблиць? Де переваги, що сприяло цій ідеї в галузі? Коли добре використовувати таблицю?


Широко обговорюється на SO stackoverflow.com/questions/83073 / ...
Габріеле Petrioli

Google використовує самі таблиці, наприклад, у межах adwords. З мільйонами рекламодавців, які здійснюють реєстрацію та працюють із динамічними даними, набагато простіше кодувати навколо <table>сітки CSS. Я використовую datatables.net для кількох додатків, і ви можете побачити список тих, хто використовує цей плагін jquery на своєму сайті. Багато сайтів досі використовують таблиці з поважних причин. Я використовую лише таблиці, хоча працюю з великою кількістю динамічних даних, які потрібно сортувати за стовпчиками, страждаючими стовпцями тощо, але не для макетів сторінок, для чого CSS.
Анагіо

Відповіді:


71

1) Таблиці не слід використовувати для макетів сторінок, оскільки вони:

  • Повільно візуалізувати, оскільки браузер повинен завантажувати більшу частину (якщо не всю) таблиці, щоб правильно її відтворити

  • Вони вимагають більше HTML, ніж макети, які не є таблицями, що означає повільніше завантаження та візуалізацію, а також збільшення використання пропускної здатності.

  • Вони можуть бути кошмаром для підтримки, оскільки вони можуть швидко отримати складний стан

  • Вони можуть порушити копіювання тексту

  • Вони негативно впливають на читачі екранів і можуть зробити ваш вміст недоступним для деяких користувачів

  • Вони не такі гнучкі, як використання правильної семантичної розмітки

  • Їх ніколи не передбачалося використовувати для макетів сторінок

  • Перетворення таблиць на чуйний макет дуже важко контролювати

2) Використовуйте таблицю для табличних даних. Ось для чого призначені таблиці.

Дивіться також: Чому люди роблять столи з дівами?


1
Так, якщо у мене є розділ про контактні дані, це нормально, щоб мати таблицю, але графічний макет сторінки є в DIVs або щось подібне до них. Я бачив, як деякі дизайнери уникають їх спільно в областях, які мають табличні дані та використовують DIV.
інкогніто

18
Дизайнери, які взагалі уникають таблиць, не знають, що вони роблять. Вони неправильно зрозуміли, що означає "не використовувати таблиці для макетів сторінок".
Джон Конде

1
Дуже уникати таблиць взагалі, але існують законні альтернативи таблицям для контактної інформації. Список визначень є хорошою альтернативою, особливо при впровадженні картки hCard: cagintranet.com/archive/…
Lèse majesté

2
@Litso: Ви повинні прочитати власні характеристики W3C, DLперш ніж ви вирішите, для чого це добре чи ні.
Lèse majesté

1
Існує також позиція: табличний CSS тег для створення макетів на основі таблиць без розміщення їх у HTML. Є кілька нішевих випадків, коли таблиці все ще є найкращим / найпростішим варіантом для макетів. Погляньте на @ css-tricks.com/fluid-width-equal-height- Column, щоб побачити, що я маю на увазі.
Еван Плейс

8

Таблиці призначені для табличних даних, а не для дизайну. Люди часто неправильно розуміють мотивацію, що робить сторінки "столовими".

Неправильно використовувати таблиці для створення вашого макета. Для компонування слід використовувати інші елементи (divs, списки, розділи, статті, заголовки, колонтитули, відсторонення тощо). І ви можете домогтися чудових ефектів за допомогою мінімального HTML / CSS (залишаючи свій код семантично значущим, легким та простим у обслуговуванні).

Звичайно, табличні дані повинні бути всередині елемента таблиці. Якщо ви хочете, ви можете покращити навіть семантику таблиць, додавши thead, tfoot, tbody, th, заголовки тощо. Усі ці елементи призначені для використання з таблицями, і повірте, вони можуть зробити вашу таблицю набагато більш самоописовою. .

Отже, справа не в тому, щоб не розробляти дизайн на основі таблиць і не використовувати будь-яке рішення HTML / CSS, яке підходить. Почніть з семантичної розмітки HTML, а потім створити дизайн за допомогою CSS. Це повинно будь-кого захистити. Використовуйте це як правило.


3

Таблиці повинні містити дані, а не елементи дизайну.


3

Таблиці слід використовувати лише під час відображення табличних даних. В іншому випадку вони зазвичай є поганим вибором для відображення.


Чому потік?
Кріс Баланс

0

Справжня причина не використовувати таблиці:

Типовий макет таблиці: table-layout:fixed

Це спонукає браузер проаналізувати таблицю та виправити комірки, щоб містити елементи всередині них, на що потрібно певний час. (саме тому таблиці настільки гарні для складних даних)

Підсумок: таблиця відображатиметься після того, як весь вміст всередині неї буде виведений, на відміну від використання, наприклад, елементів DIV.


-3

Я використовую таблиці для структури веб-дизайну в рідині, змішаній з фіксованою, і я знаю, що багато хто говорить, що таблиці призначені для нобівок, інші кажуть, що вони є для хлопців старої школи, які завжди кажуть, що DIVS - найкраще, але правда - таблиці краще для якоїсь речі, а DIVS для інша річ.

Що краще а <br>чи а <p></p>? Те ж саме

Я та мої старі таблиці в моєму новому веб-дизайні 2015 року можуть поштовхувати будь-кого з моїм привітним мобільним на 100% шириною, змішаним з двома бічними стовпцями по 200 пікселів кожна.

Очевидно, що всередині столів некрасиво ставити все більше та більше таблиць, саме тут DIVS стане у нагоді. Таблиці можуть робити речі, які діви не можуть, а діви можуть робити таблиці речей, не можуть.

Ті, хто говорить, що виправлено таблицю за замовчуванням? Я наводжу вам приклад

<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200">left</td>
    <td width="100%">middle</td>
    <td width="200">right</td>
  </tr>
</table>

Чи бачите ви потенціал зараз? Погляньте на ПК та мобільний телефон. Ага так, і мені навіть не потрібна завантажувальна програма.

Тепер, щоб зробити те ж саме з divs, вам потрібно написати багато CSS-коду, щоб відобразити вирівнювання float та crap. Хто написав менше коду? Я! Що потрібно клієнтам? Хлопець, який закінчує сторінку через 1 рік чи через 1 місяць?

Тепер давайте вдосконалюємо дизайн за допомогою дівок

<div style="width:100%; min-width:1000px; height:200px;">top menu or nav</div>
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200">left</td>
    <td width="100%">middle</td>
    <td width="200">right</td>
  </tr>
</table>
<div style="width:100%; min-width:1000px; height:200px;">top menu or nav</div>

Настільки красива схема дизайну на 5 стовпців за допомогою divs та таблиць.

Ваша відповідь: вони обидва разом працюють краще і швидше, і це буде добре виглядати на будь-якому дизайні, навіть на телевізорах та невеликих мобільних телефонах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.