Это хорошая идея для оформления тега body?

#css #html

#css #HTML

Вопрос:

На моем веб-сайте с фиксированной шириной у меня макет, похожий на этот:

 <div id="wrapper">
  <header>...</header>
  <div id="content">...</div>
  <footer>...</footer>
</div>
  

И мой CSS похож на этот:

 #wrapper {
  width: 700px;
  margin-left: auto;
  margin-right: auto;
}
  

Стилизация <body> тега таким же образом также работает, и это делает мой код более читаемым, поскольку у меня меньше вложенных <div> тегов.

Является ли применение полей и исправленного с к <body> безопасной идеей?

Комментарии:

1. это «безопасно», но веб-сайты фиксированной ширины не очень хорошо используют medium IMO.

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

Ответ №1:

Это совершенно безопасно, body это HTML-элемент, как и все остальные.

Для вашего макета вы все равно можете захотеть использовать #wrapper (похоже, макет фиксированной ширины), потому что вы можете захотеть установить фон для body (или сделать что-то с видимым «пустым» пространством).

Комментарии:

1. Вы также всегда можете установить фон для самого html-элемента.

2. @Madmartigan Спасибо, я не был уверен, что это всегда работает, все еще исследую.

3. Будет ли добавление <html> в этот микс менее взрывоопасным? Мне как бы интересно, что не поддается стилизации…

4. @Blender: Слава богу, мы не можем оформить заголовок и объявления doctype… Я надеюсь

5. Только что нашел хороший пример размещения фонового изображения в теге HTML.

Ответ №2:

Сейчас я тестирую ширину / поля / отступы для этих элементов в IETester с помощью XHTML Strict doctype.

Пока у меня есть следующее для <body> :

IE 5.5 — СБОЙ (ширина не устанавливается, или фон расширяется за пределы размеров), заполнение / поля в порядке

IE 6 — PASS

IE 7 — PASS

IE 8 — Соблюдает ширину, но не идеально обрабатывает отступы / поля

Страница, которую я использую здесь


Тестирование с использованием ширины и поля, примененных к html-элементу здесь:

IE 5.5 — ТО ЖЕ самое, за исключением полей / отступов, не будет работать

IE 6 — Не будет учитывать ширину

IE 7 — Учитывает ширину, но не будет центрироваться на display:block и margin:0 auto с шириной, установленной в px.

IE 8 — Соблюдает ширину, но не идеально обрабатывает отступы / поля

Когда для элемента html во всех случаях была установлена ширина, он фактически отображался так, как если бы это было заполнение, ограничивая элемент body.

Это было весело, но сейчас у меня кончился бензин, пора возвращаться к реальной работе 😉

Комментарии:

1. Я сомневаюсь, что многие люди используют IE 5.5, но я не знал, что это произошло с IE6 / 7 с <html> элементом. Мне придется поиграть с каким-нибудь сумасшедшим CSS и посмотреть, что я могу сломать…

2. Да, конечно, никто не использует IE5.5, но я подумал, что это сработало в IE 5.5, мы все чувствовали бы себя в безопасности, используя его. (r)

Ответ №3:

Оформление тега body — это нормально, но это означает, что если вам когда-нибудь понадобится внести изменения на веб-сайте, у вас нет других «запасных» тегов для изменения. Тег body часто является безопасным тегом, который можно оставить для облегчения будущих изменений.

Для jcomeau_ictx: Есть миллион причин использовать веб-сайты фиксированной ширины. Я думаю, вы найдете больше сайтов фиксированной ширины, чем веб-сайтов fluid.