Следует ли избегать таблиц в HTML любой ценой? - PullRequest
34 голосов
/ 17 сентября 2008

Желательно использовать таблицы на страницах HTML (теперь, когда у нас есть CSS)?

Какое применение таблиц? Какие функции / возможности есть у таблиц, которых нет в CSS?

Похожие вопросы

Ответы [ 27 ]

2 голосов
/ 17 сентября 2008

Я должен пойти с подходом таблиц здесь. Причина этого сводится просто к стоимости. До тех пор, пока не появится хорошо поддерживаемый CSS-ориентированный подход к макетированию, и я говорю о макроуровне ... а не о микроэлементах в контейнерах, попытка включить позиционирование CSS в обобщенный подход к макетированию неэффективна. Вы должны подходить к этому с точки зрения лица, выписывающего чек на разработку.

Несколько лет назад я заключил контракт на разработку и обслуживание сайта для крупной сети отелей. Мы пошли с настольным расположением; ваш основной колонтитул, тело, нижний колонтитул с левым / правым столбцами. Мы также использовали таблицы для некоторых более тонких элементов, таких как неграфические кнопки. Компания-учредитель сети поддерживала собственный сайт и придерживалась чистого CSS-подхода к верстке. Когда вышел IE7, наш сайт работал без каких-либо изменений. На сайте материнской компании был беспорядок. В общей сложности они потратили около 1000 часов (между встречами / разработкой / QA / развертыванием) на решение проблем.

Когда вам платят за разработку сайта, часть вашей ответственности состоит в том, чтобы уменьшить риск в будущем и минимизировать будущие затраты на разработку, особенно если эти затраты не повышают ценность сайта (вашего продукта).

1 голос
/ 17 сентября 2008

Хотя для некоторых макетов использование таблиц может показаться более простым на первый взгляд, когда время обслуживания приходит, css окупается. Особенно, если вы когда-нибудь захотите изменить положение чего-либо, или если вы хотите использовать один и тот же макет в нескольких местах.

ИМХО, таблицы следует использовать только при представлении таблиц. Никогда для макета.

1 голос
/ 17 сентября 2008

Я думаю, что причина, по которой это возникает, заключается в том, что использование HTML-таблиц легче понять при создании структуры и макета, чем CSS. Использование CSS более абстрактно, но помогает отделить ваш код.

В ответ на аргумент «структура» ... по определению не использует таблицы html, дающие структуру данным, чтобы вы идентифицировали ее как «табличную». Будь то CSS или HTML, вы управляете потоком и макетом данных. Будь то табличное или нет ...

Если таблицы CSS так важны (и я уверен, что мой ответ положит начало некоторой войне пламени), почему в Visual Studio нет механизма для создания макета с использованием CSS? О, вы не проверяли функцию разметки в VS? Да, вы получаете таблицы, прямо из Microsoft. Я не жалуюсь, просто подчеркиваю, что если бы это так много значило для остального мира, вы бы увидели, что MS переключилась на CSS.

По моему мнению, делайте то, что лучше всего подходит для вашего проекта. Для веб-проектов на одну или две страницы я все еще использую html, потому что это очевидно. Использование CSS более абстрактно, и по утрам у меня просто не было много кофе. Таблицы HTML могут стать грязными, быстро. CSS занимает немного больше времени, чтобы запутаться, но тоже.

1 голос
/ 17 сентября 2008

Мое очень простое и базовое мнение по этому поводу состоит в том, что таблицы предназначены для табличных данных, а не для того, чтобы располагать одну вещь сверху или рядом с другим элементом, потому что вам, как вам понравится, это там.

Итак - если вы хотите отобразить таблицу данных: сделайте это (с таблицей). Если вы хотите разместить контент на странице: используйте css.

1 голос
/ 17 сентября 2008

Я думаю, вы можете быть немного смущены. CSS - это метод стилизации HTML-документов, будь то элемент таблицы или div.

Раньше таблицы использовались в HTML для разработки всего макета страницы. Распространено было видеть несколько вложенных таблиц (обычно генерируемых программами WYSIWYG, такими как Dreamweaver), и это приводило к кошмару обслуживания.

С момента появления и принятия таблиц стилей CSS теперь правильно использовать только таблицу для табличных данных. Это означает, что если ваши данные наиболее естественно отображаются в виде таблицы, используйте элемент таблицы. Вы все еще можете стилизовать таблицу с помощью CSS.

Однако, и я в целом не одобряю этот метод, поскольку он дублирует существующую функциональность, можно использовать элементы для построения структуры, подобной таблице. На самом деле есть несколько веб-сайтов, которые будут генерировать такой код для вас, но у меня нет ссылок.

Помните также, что некоторые пользователи могут либо просматривать только в текстовом режиме, либо использовать программу чтения с экрана, которая, вероятно, сломает страницу (например, чтение столбцов по вертикали, а не по горизонтали), следовательно, правильное использование таблиц.

НТН

1 голос
/ 17 сентября 2008

Я верю и надеюсь, что эра использования таблиц для разметки прошла. Проще говоря: таблица - это таблица, ничего больше .

То, что я думаю, будет новой, похожей, пламенной темой в течение следующих нескольких лет: я должен использовать новую функцию CSS display : table , table-cell , таблица-строка и т. Д. Для макета ?? ? : -)

0 голосов
/ 16 сентября 2009

Кажется, зависит от того, на что способны браузеры, когда вы начинаете проектировать. Если вы начали тогда, когда работали только таблицы, то это то, что вы, вероятно, всегда захотите использовать, потому что вы это знаете. Или если это то, что вам нравилось использовать даже после того, как браузеры продвинулись, чтобы иметь возможность отображать CSS ...

Мне просто не нравится повторять одни и те же вещи снова и снова, потому что это легко, и я знаю, как это делать. Это скучно. Я бы лучше изучил новые техники, чем отказался бы от чего-то, потому что я не знаю, как его использовать, или мне кажется, что у меня нет времени на обучение.

Я не люблю использовать таблицы, я их не понимаю, они кажутся чуждыми и оскорбительными, но это потому, что я начал в 2005 году. Я также не использую дизайнерские программы, чтобы выкладывать шаблоны, потому что я предпочитаю ручное кодирование .

0 голосов
/ 19 сентября 2008

@ toddhd, отстаивание использования таблиц для разметки просто для экономии времени. Если время является проблемой, то вы можете быстро создать столбчатый макет без таблиц, используя такую ​​структуру, как Blueprint CSS или 960 Grid .

0 голосов
/ 17 сентября 2008

Таблицы имеют смысл только тогда, когда вы пытаетесь отобразить табличные данные и все. Для макетов вы всегда должны использовать DIVs и играть с позициями CSS.

0 голосов
/ 17 сентября 2008

Резервирование таблиц для использования только для табличных данных работает большую часть времени. Существуют определенные проблемы с компоновкой, которые гораздо проще решить с помощью таблиц, чем что-либо еще. Например, вертикальное выравнивание и столбцы равной высоты. С другой стороны, были некоторые сложные таблицы данных, для которых я использовал плавающие div, потому что таблицы не соответствовали требованиям.

Как и все остальное, используйте правильный инструмент для правильной работы, и иногда самый прагматичный инструмент - это не то, что вы думаете. Тем не менее, я редко использую таблицы для разметки, даже в примерах, которые я приводил, потому что я неизбежно сталкиваюсь с некоторой проблемой, которая заставляет меня все равно делать это с CSS. Ваш пробег может отличаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...