Использовать стол в качестве контейнера или нет? - PullRequest
1 голос
/ 12 мая 2010

Я создал весь свой веб-сайт, используя основную таблицу и содержимое внутри таблицы.

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

В моем index.html у меня есть <table align="center">, а затем все содержимое в нем.

Теперь содержимое имеет форму DIVS, и все они имеют относительное позиционирование, поэтому они относятся ктаблица.

Например:

<table align="center">
  <tr>
    <td>
      <div style="position:relative; left:14px; top:50px;">

              CONTENT HERE... (Form, divs, images)

      </div>
    </td>
   </tr>
 </table>

Я только что перешел на стадию совместимости браузера.

Без каких-либо изменений мой сайт отлично работает в FFSAFARI, Chrome и Opera.Единственная проблема с IE.

Так что для моего Q, если бы вы были там, где я, вы бы изменили мое расположение и удалили таблицы, и вместо этого использовали бы больше css и больше DIVS, или вы бы использовали то, что у меня?

И, пожалуйста, если вы ответите мне, не просто предоставьте мне ответ, но и "почему", то есть ... другими словами, предоставьте мне аргументы и факты ...

Спасибо

Ответы [ 9 ]

4 голосов
/ 12 мая 2010

Я не вижу в вашей таблице ничего, что могло бы дать вам больше, чем вы могли бы получить, просто имея DIV, содержащийся в вашей отдельной ячейке таблицы. Вы по-прежнему упорядочиваете содержимое на основе вашего DIV как родителя, так как именно вам поможет дополнительная разметка вне div? Если вас беспокоит центрирование DIV (и, очевидно, у вас возникают проблемы, потому что вы говорите, что у вас проблемы с IE), задайте margin-right:auto; margin-left:auto в стиле или CSS.

3 голосов
/ 12 мая 2010

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

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

Посмотрите на CSS. С небольшим предвидением и ложным началом или двумя, CSS сделает ваш веб-сайт более легким в обслуживании, более читаемым для всех (включая тех, у кого нет глаз), и позволит вам гибко вносить изменения в ваш контент ИЛИ вносить изменения в ваш макет без значительного риска испортить "другой" предмет.

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

2 голосов
/ 12 мая 2010

Вопрос был: «Если бы вы были мной, изменили бы вы мое расположение и удалили таблицы?» Мой ответ: «Да».

Что касается того, почему об этом спрашивали несколько раз. Самая популярная тема - эта .

1 голос
/ 12 мая 2010

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

Правильный способ размещения вашего веб-сайта не обязательно ограничивать себя использованием только элементов div, но использовать любой элемент, который семантически подходит. Элементы div - это, по сути, просто семантически пустые контейнеры, которые хорошо работают в общих целях макета, но, например, для списков вещей следует использовать ol или ul (в зависимости от того, имеют ли элементы какой-либо порядка, связанного с ними). Что касается таблиц, то в них нет ничего неправильного, , но они должны использоваться только для представления табличных данных, а не для макета!

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

Вы можете прочитать об этих вещах более подробно здесь и здесь .

1 голос
/ 12 мая 2010

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

Несколько хороших статей для начала:

1 голос
/ 12 мая 2010

Я бы определенно удалил таблицу и заменил бы ее на: стили тела, которые имитируют то, что делал ваш стол / контейнеры div.

Есть несколько причин: 1) доступность: люди, использующие программы чтения с экрана, имеют разный доступ к вашему сайту, и он сверху вниз, слева направо ... им нужно слышать бессмысленную и бессмысленную «таблицу, строку таблицы, данные таблицы» повсюду. 2) веб-пауки не любят таблицы 3) обслуживание сайта легче с сайтами, а не с таблицами: проще добавить элемент без таблиц.

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

Если вы не переходите из таблицы, то стоит отметить, что td может быть стилизован точно так же, как div - нет необходимости вкладывать div в td. Это также синтаксически неправильно, так как td является встроенным элементом, а div является элементом уровня блока. Вы можете изменить это, но зачем?

1 голос
/ 12 мая 2010

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

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

0 голосов
/ 13 мая 2010

Следует ли использовать таблицы для макетов?

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

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

Может проходить валидатор (кроме строгого атрибута align), но он просто не поддерживается, не масштабируется и не полезен.

0 голосов
/ 12 мая 2010

Использовать таблицы:

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

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

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