@smithana

Какие стили по умолчанию базовых тегов?

Всем привет

столкнулся с проблемой и видимо не хватает базовых знаний, чтобы понять причины и решить её.
Подтяните пожалуйста неуча =)

Началось с того, что при вёрстке макета, мне понадобилось увеличить ширину контейнера бутстрапа для ПК разрешения до 1500px.
Я прописал media (min-width:1200px){ .container{ width: 1500px}} и продолжил вёрстку.
Позже заметил, что всё хорошо, когда ширина экрана больше 1500px. Но если ширина меньше 1500, то контейнер остаётся заданной ширины, а вот ширина базовых тегов html, body, header, main меньше и равна ширине экрана.

Сначала я начал грешить на свою кривую вёрстку, потом на бутстрап. В итоге сделал простейший пример без всех фреймворков и понял, что просто недопонимаю почему базовые теги, имеющие стандартный стиль display block не растягиваются на фиксированную ширину контейнера.
https://jsfiddle.net/utt8ehw6/

Синий это body, жёлтый header, белый container.
3bebaef630164de6a101fbde2df415f9.JPG

з.ы.
и ещё не могу понять, почему если смотреть инспектором, то ширина body равна ширине экрана, но мы же видим, что синим залито всё окно.

Спасибо.
  • Вопрос задан
  • 399 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Cr2ed
По умолчанию блочные элементы занимают всю ширину родительского блока.
Тот факт, что вы указали внутреннему блоку ширину больше чем body, не увеличивает ширину самого body. В данном случае он просто вылазит за пределы и тут срабатывает overflow, который по умолчанию visible.
Ответ написан
Lynn
@Lynn
nginx, js, css
но мы же видим, что синим залито всё окно.


Издержки обратной совместимости.

For HTML documents, however, we recommend that authors specify the background for the BODY element rather than the HTML element. For documents whose root element is an HTML "HTML" element or an XHTML "html" element that has computed values of 'transparent' for 'background-color' and 'none' for 'background-image', user agents must instead use the computed value of the background properties from that element's first HTML "BODY" element or XHTML "body" element child when painting backgrounds for the canvas, and must not paint a background for that child element. Such backgrounds must also be anchored at the same point as they would be if they were painted only for the root element.


https://www.w3.org/TR/CSS22/colors.html#background

Т.е. если не задавать никакого фона для html, то фактически стили фона для body применяются к html.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы