Эти DIV действительно необходимы? - PullRequest
3 голосов
/ 30 июля 2009

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

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

Я мог бы наверняка назначить все свойства, которые я назначил DIV для UL, и вообще не использовать div.

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

Спасибо

Зенна

Ответы [ 9 ]

4 голосов
/ 30 июля 2009

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

2 голосов
/ 30 июля 2009

Нет, это не так. Назначение элемента div - создать структуру уровня блока в документе . Если вы можете потерять их, просто потеряйте их. Никогда не используйте div для решения дизайнерских задач, css для этого. Используйте элементы html, такие как список, определения данных или таблицы (которые ранее использовались слишком часто и использовались в качестве элементов div теперь для целей CSS). Чем разнообразнее ваши знания HTML, тем меньше вы используете div в разных местах.

1 голос
/ 30 июля 2009

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

1 голос
/ 30 июля 2009

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

1 голос
/ 30 июля 2009

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

0 голосов
/ 31 июля 2009

В случае UL, да, DIV не требуется. Оба они являются блочными элементами, поэтому все, что вы можете сделать с DIV, обернутым вокруг, вы можете сделать непосредственно с самим UL.

Однако из-за проблемы Box Model с некоторыми браузерами IE некоторые люди советуют вам добавить эти DIV в качестве обходного пути. Когда вы комбинируете отступы и ширину, IE6 не соглашается с другими браузерами в том, каким будет конечный размер элемента. Таким образом, один из обходных путей - поместить отступ, но не ширину внутреннего элемента, а ширину, но не заполнение внешнего элемента.

0 голосов
/ 30 июля 2009

Я использую DIVS в основном по крайней мере по одной из двух основных причин:

  • Мне нужно, чтобы он каким-то образом предоставлял новый физический уровень CSS (дочерний отступ внутри элемента фиксированной ширины, тень или двойная рамка вокруг изображения и т. Д.)
  • Он логически группирует содержащиеся в нем элементы (для будущей переносимости и семантики как в HTML, так и в CSS - IE "div # menu .label". Таким образом, я могу использовать класс "label" в нескольких местах, но к нему применяется особый стиль метки внутри "меню" div).

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

0 голосов
/ 30 июля 2009

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

0 голосов
/ 30 июля 2009

Div - действительно необходимое зло без более семантически богатого набора тегов.

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

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