Таблиц нужно избежать в HTML любой ценой?

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

int x;
x = 10;

В этом примере переменная x является int, и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Integer num;
num = new Integer(10);

Первая строка объявляет переменную с именем num, но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

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

Например, вы можете имеют следующий метод:

public void doSomething(SomeObject obj) {
   //do something to obj
}

В этом случае вы не создаете объект obj, скорее предполагая, что он был создан до вызова метода doSomething. К сожалению, этот метод можно вызвать следующим образом:

doSomething(null);

В этом случае obj имеет значение null. Если метод предназначен для того, чтобы что-то сделать для переданного объекта, целесообразно бросить NullPointerException, потому что это ошибка программиста, и программисту понадобится эта информация для целей отладки.

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

/**
  * @param obj An optional foo for ____. May be null, in which case 
  *  the result will be ____.
  */
public void doSomething(SomeObject obj) {
    if(obj != null) {
       //do something
    } else {
       //do something else
    }
}

Наконец, Как определить исключение & amp; причина использования Трассировки стека

36
задан Community 23 May 2017 в 12:09
поделиться

27 ответов

Нет - нисколько. Но используйте таблицы для табличных данных. Просто не используйте их для общего layouting.

, Но если Вы отображаете табличные данные, как результаты или возможно даже форма, разрешение и используете таблицы!

80
ответ дан Mark Cidade 27 November 2019 в 05:05
поделиться

Таблицы имеют смысл только, когда Вы пытаетесь отобразить табличные данные и вот именно. Для разметок необходимо всегда использовать ОТДЕЛЕНИЯ и играть с расположениями CSS.

-1
ответ дан Luis Abreu 27 November 2019 в 05:05
поделиться

Я собираюсь предположить, что Ваш вопрос на самом деле - , "Я должен избегать использования HTML-таблиц в целях расположения?" . Ответ: Нет. На самом деле таблицы конкретно предназначены для использования к расположению органов управления. Недостаток для использования таблиц для управления расположением всей страницы состоит в том, что исходный файл быстро становится трудным вручную понять и отредактировать. (Возможное) преимущество использования таблиц для управления всем расположением состоит в том, если существуют определенные опасения по поводу перекрестной совместимости браузера и рендеринга. Я предпочитаю работать непосредственно с исходным файлом HTML, и для меня использующий CSS делает это легче, чем использование таблиц для всего расположения.

-1
ответ дан Loren Charnley 27 November 2019 в 05:05
поделиться

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

0
ответ дан chrisofspades 27 November 2019 в 05:05
поделиться

Это легко. Думайте своя веб-страница как реальная страница на бумаге. Необходимо использовать таблицы на веб-странице только при рисовании таблицы на статье.

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

0
ответ дан ofaurax 27 November 2019 в 05:05
поделиться

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

0
ответ дан Gunstick 27 November 2019 в 05:05
поделиться

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

0
ответ дан rslite 27 November 2019 в 05:05
поделиться

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

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

0
ответ дан Russell Leggett 27 November 2019 в 05:05
поделиться

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

Просто использование никакие таблицы, чтобы сделать материал расположения. Существует партия searchengine und польза доступности, которую Вы извлекаете с семантической разметкой.

0
ответ дан 27 November 2019 в 05:05
поделиться

Таблицы используются для отображения табличных данных. Нет очень еще для добавления:-D

0
ответ дан mercutio 27 November 2019 в 05:05
поделиться

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

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

1
ответ дан 27 November 2019 в 05:05
поделиться

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

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

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

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

1
ответ дан 27 November 2019 в 05:05
поделиться

Я думаю, что Вы могли бы быть немного смущены. CSS является методом моделирования документов HTML, является ли это элементом таблицы или 'отделением'

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

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

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

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

HTH

1
ответ дан 27 November 2019 в 05:05
поделиться

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

Так - если Вы хотите отобразить таблицу данных: сделайте так (с таблицей). Если Вы хотите расположить содержание на странице: используйте css.

1
ответ дан Olaf Kock 27 November 2019 в 05:05
поделиться

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

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

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

2
ответ дан 27 November 2019 в 05:05
поделиться

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

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

2
ответ дан Matthew Cole 27 November 2019 в 05:05
поделиться

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

3
ответ дан 27 November 2019 в 05:05
поделиться

Преимущество CSS - то, что он разделяет дизайн и расположение от содержания.

, Если у Вас есть табличные данные тогда, имеет смысл использовать <TABLE> тег. Если Вы хотите к расположению различные блоки содержания тогда, необходимо использовать <DIV> или <SPAN> и CSS.

4
ответ дан Dave Webb 27 November 2019 в 05:05
поделиться

Таблицы для вывода табличных данных. Что-либо, что Вы могли бы отобразить в электронной таблице, столбцах результатов, такой вещи.

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

3
ответ дан Mike Dimmick 27 November 2019 в 05:05
поделиться

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

CSS2 имеет поддержку создания гибких разметок сетки, не используя table элемент через свойство дисплея, но это не поддерживается в IE6 или IE7.

Однако для разметок наиболее канонической формы, CSS должен быть достаточным.

11
ответ дан Jonny Buchanan 27 November 2019 в 05:05
поделиться

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

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

Вот то, как обычно идет мое безумие CSS: Попытайтесь настроить подобное таблице расположение в CSS. Проведите 20 минут или больше получения всего именно так в Mozilla и затем откройте его в IE. Проведите еще 30 минут, настраивая между теми двумя браузерами. Притворитесь как существует только два браузера в мире, потому что я на самом деле должен получить некоторую сделанную работу.

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

6
ответ дан Paul Prewett 27 November 2019 в 05:05
поделиться

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

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

13
ответ дан nickf 27 November 2019 в 05:05
поделиться

Я предполагаю, что не нахожусь в большинстве здесь, но я все еще вижу большое использование для таблиц в HTML. Конечно, да, для вещей как формы, Вы просто не можете победить таблицу. Попытка выстроить в линию маркировки и сопровождение полей формы, конечно, были бы возможным DIV использования, но что ЛАВАШ, который будет, и изменение размеров страницы, был бы ужасен в некоторых случаях. Таблица творит чудеса здесь.

, Но также и рассматривают большие проблемы. Например, Вы попытались создать стандартное расположение на 3 столбца с заголовком и нижним колонтитулом с помощью только DIV и CSS? Снова, это очень возможно, и существует приблизительно 1 000 веб-сайтов с примерами, но они все склонны страдать от тех же проблем. Первая проблема состоит в том, что столбцам никогда действительно нравится ко всем, становятся той же высотой без своего рода помощи JavaScript. Вторая проблема изменяется, расположение часто является хитрой вещью, потому что это - определенное балансирующееся действие для получения всего "просто право" для начала, таким образом Вы не хотите смешивать с ним. Наконец, и это возвращается к той последней точке - это не легко. Необходимо разметить весь DIV, затем возвратитесь и создайте волшебный CSS, которые вынуждают тех DIV в надлежащее положение, и затем проводят несколько часов, настраивая его, пока это не правильно.... тьфу. И затем рассмотрение HTML без средства просмотра действительно не дает Вам идеи, на что похожа страница, потому что этому ВСЕ дает иное толкование CSS в конце.

Теперь, опция B. Используйте таблицу. Проведите приблизительно 30 секунд, выводя < tr> и < td> теги, вероятно, никакой CSS вообще, никакой JavaScript 'fixit', и не знают ТОЧНО, на что это будет похоже только путем рассмотрения HTML.

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

70
ответ дан Todd Davis 27 November 2019 в 05:05
поделиться

Я верю и надеюсь, что эры использования таблиц для расположения не стало. Просто помещенный: таблица является таблицей, ничто иное .

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

1
ответ дан petr k. 27 November 2019 в 05:05
поделиться

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

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

0
ответ дан 27 November 2019 в 05:05
поделиться

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

Многие люди используют термин «пурист». Это чушь. Вы бы напечатали газетный экземпляр в книге? Вы бы разработали брошюру в Excel? Нет? Тогда зачем вам использовать таблицу для отображения нетабличных данных?

В большинстве случаев трудности, с которыми люди сталкиваются, отказываясь от таблиц для разметки, являются результатом их собственного незнания HTML / CSS / принципов хорошего дизайна. Хотя вам может быть трудно добиться равномерного распространения макетов в несколько столбцов в вертикальном направлении, вы можете попробовать другой метод. DIV - это не ТАБЛИЦЫ. Вы можете создавать искусственные столбцы, используя широкие границы, фон страницы и т. Д. Потратьте некоторое время на то, чтобы научиться делать то, что вы ' вы намереваетесь сделать или навсегда останетесь человеком без каких-либо полезных навыков. ( http://www.alistapart.com было бы хорошим началом)

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

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

-4
ответ дан 27 November 2019 в 05:05
поделиться

Просматривая эти ответы, я не нашел ни одной реальной причины, по которой таблицы необходимы для разметки, а именно электронной почты html.

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

Вы не можете использовать CSS для разметки для любого почтового читателя. Есть несколько встроенных спецификаций css, которые вы можете использовать, которые относятся к цвету, шрифту и размеру и даже высоте строки довольно широко доступны, но для макета вы должны использовать таблицы как все основные и самые второстепенные программы чтения электронной почты (Outlook 97 / 03, Entourage, MSN и т. Д.) Читаются нормально.

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

Итак, если вы когда-нибудь будете работать в большой компании / корпорации или у вас появится очень крупный клиент, будьте готовы выбросить все современные технологии и надеть шляпу HTML-таблицы!

3
ответ дан 27 November 2019 в 05:05
поделиться