Подтвердить что ты не робот

Зачем использовать таблицы для структурирования вашего макета?

Посмотрев на исходный код для Stack Overflow, я заметил, что они довольно часто использовали таблицы и встроенные CSS, а также что-то, что я нашел нечетным, - это использование форматирования атрибута inline table.

<table width="100%">

Мне просто интересно, были ли какие-либо конкретные причины, почему они использовали таблицы для структурирования своего шаблона вместо популярных (или использовавшихся для использования) DIVs.

Также... цель использования CSS включает и использование встроенного CSS на одной странице (я знаю, что, вероятно, для этого есть отличный ответ/решение). Мне просто интересно, что они собой представляют )

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

4b9b3361

Ответ 1

Таблицы против Divs - бессмысленная священная война.

Существуют определенные проблемы с использованием таблиц в определенных способах макета, которые могут вызвать проблемы. Одним из них является построение всего макета сайта в одной таблице для обработки полей и размещения - из-за способа отображения таблиц это часто означает, что веб-сайт не будет постепенно обрабатываться движком браузера при загрузке содержимого и может после того, как все будет получено. Для большой страницы или пользователя с медленным модемом они могут долгое время смотреть на пустую страницу, что является "плохой вещью". Неважно много несоответствий в рендеринге таблицы в генерации браузеров mozilla/ie5, что сделало согласованные макеты таблиц с несколькими браузерами несколько болезненными, особенно с изображениями в ячейках.

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

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

Ответ 2

Не будучи вовлеченным в развитие SO, я говорю только:

Я обнаружил, что tables часто проще и более согласованны между браузерами, чем CSS -уровневые макеты.

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

Что касается того, почему они решили установить ширину таблицы в HTML вместо CSS, я не мог сказать.

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

Пожалуйста, не плачьте, чтобы я так сказал. Мы не все ниндзя CSS.

Ответ 3

SO, вероятно, был написан программистами, а не веб-разработчиками.

Ответ 4

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

Несмотря на то, что теперь все говорят о макете с css и divs, правда в том, что css ужасно, когда дело доходит до макета. Вы можете сделать так много. Посмотрите на некоторые предлагаемые решения, чтобы получить 2 или 3 раскладки столбцов, используя css, все они сосут. Бросить <table><tr><td id="left-column"><td id="right-column"></tr></table> намного проще.

css просто не подходит для нетривиальной компоновки (и я имею в виду чистый div/css)

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

Ответ 6

Поскольку Internet Explorer не поддерживает display: table Свойство CSS, которое является тем, что предоставляет модель размещения в виде сетки (эквивалентно тому, как html-таблицы). Сетка-модель - это самый простой и гибкий способ моделирования многих макетов.

Итак, у вас есть три варианта: ни один из них не привлекателен:

  • жертвовать поддержкой Internet Explorer (все остальные современные браузеры поддерживают свойство display:table, которые уже более десяти лет являются частью стандарта CSS2)
  • используйте громоздкие обходные пути CSS, которые являются дорогостоящими и сложными в обслуживании.
  • жертвовать семантической чистотой и использовать ТАБЛИЦЫ-элементы.

SO выбрал последний вариант, вероятно, потому, что, по их мнению, поддержка пользователей Internet Explorer важнее поддержки отключенных пользователей, и потому, что им нужно что-то быстрое развиваться и просты в обслуживании.

Ответ 7

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

И посмотрим правде в глаза - если вы не специалист, CSS занимает много времени для структур таблиц.

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

Ответ 8

IE8 станет последним крупным браузером, который, наконец, добавит поддержку отображения CSS: table- * values, поэтому различие исчезнет. Надеюсь, это закончит скулить о том, насколько жестким является CSS, и люди могут прекратить разметку разметки презентацией.

Ответ 9

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

Ответ 10

Таблицы и макет

SO layout не на основе таблиц.

С быстрым взглядом, я бы сказал, что SO layout - это 80% div-based и 20% на основе таблиц. Таблицы используются в заголовке и в поле "значки". Использование таблицы подходит для значков IMHO (это список элементов, в конце концов), не так хорошо для заголовка.
В любом другом месте используются divs.

Встроенный CSS

Опять же, используется множество встроенных определений (возможно, для быстрой макетирования структуры сайта), но SO правильно использует также css (для стилей div и для форматирования печати).

Ответ 11

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

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

Нет ничего плохого в том, что вы не знаете css, но чтобы убрать семантическую разметку и правильное использование CSS только потому, что вы не знаете, что это просто НЕПРАВИЛЬНО.

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

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

Ответ 12

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

Что касается встроенных стилей, я часто использую их, когда я создаю страницу, а затем пытаюсь повторно занести их в внешний лист позже. Это делает его немного легче для моего тестирования (нет необходимости делать жесткое обновление), а изменения в одном файле вместо двух.

Ответ 13

Моими бывают они, они пошли со столом, потому что (кроме таблицы аргументов vs css)

  • Им нужно было быстро получить функциональность, чтобы иметь мнение
  • В конце концов, это просто публичная бета-версия.
  • Они экспериментировали с ASP.NET MVC больше и макетирование меньше
  • SO - это все о программировании вопросов и ответов, и в конце концов, что важно.
  • SO все о признании вкладчиков вознаграждая пунктов и значки, которые он делает вполне прилично (это также может быть спорной темой).
  • и т.д....

Ответ 14

Я понятия не имею, но единственное объяснение, которое я могу придумать, - это то, что Джефф не поддерживает стандарты Интернета, как он хотел бы, чтобы мы думали, и ни одна из команд не горяча на CSS. Программисты часто используют кросс-браузер, простоту использования и множество других предполагаемых временных преимуществ, чтобы оправдать отсутствие навыков CSS. И я не имею в виду, что это критика, они, вероятно, действительно хороши в программировании С#/Java/Ruby/SQL/вообще, они просто не могут признаться, что они действительно не знают что-то, а также нас носить поло-шеи, дизайнеры Mac Book, владеющие...