Откуда начинается фон body?
Быстро ответ не нашел, явно надо знать правильные слова для поиска, а может его и нету.
Имеется вот такое хорошее начало html{ background-image:url("/assets/images/header.jpg"), url("/assets/images/repeat.png"); background-repeat:no-repeat,repeat-y; background-color:#30040b; } body{ /* поскипано лишнее */ max-width:1280px; margin:0 auto; } Картинка header.jpg == 1280 пикс в ширину и не укладывается как видите. Фон начинается от края окна браузера. Так вот, а если уменьшить макс-ширину туловища (body), то фон все равно начинается от края окна браузера. Я подумал потому что надо в body засунуть эти стили и засунул - ничего не поменялось. Фон начинался от края окна, а не от края тега, который я сделал видимым outline:1px solid red; на время проверки. Вопрос, как "залить" body фоном так, чтоб он начинался от левой границы туловища, а не от границы окна? Временно пришлось убрать центральную выключку - margin:0 auto; - все уехало влево, а хочется чтобы четко стояло по центру и фон был только внутри контента в body шириной максимум 1280 пикс. |
Ладно, покажу на примере: http://jsfiddle.net/pjLs594y/3/
Одинаковый фон с одинаковыми параметрами применен к body и к div. В див-е картинка начинается как и положено от указанной границы элемента, а туловищу положить на все эти параметры. Поискал еще раз и подольше, все равно ответа так и не нашел. Вопрос - почему и как заставить фон начинаться от края боди? |
http://htmlbook.ru/css/border-style, а этим справочником пробовали пользоваться?
|
Цитата:
|
Это нормальное поведение и описано в спецификации: http://www.w3.org/TR/CSS21/colors.html
Цитата:
Т.о. нужно элементу html установить либо цвет, либо фон. |
Это не та спецификация. Ежу понятно композинг без фона невозможен и если коренной элемент его не имеет, то будет не с чем сводить. Мне стопицот раз самому приходилось объяснять что нет никаких "прозрачных гифок", и вообще "прозрачности" в графике. Есть инструкция по смешиванию пикселов фона с пикселами изображения которая хранится в отдельном канале А (альфа), причем технически пикселы фона кладутся "сверху" пикселов изображения, хотя может показаться что они "просвечивают".
Вопрос был почему картинка начинается с координат вьюпорта, а не элемента body. Оказалось потому что для body предусмотрено единственное исключение распространения стилей выше по иерархии. А поскольку выше только html - то он все и определяет. Цитата:
|
Запутался в трех соснах, я, короче.
Все так и было - цвет фона стоял на хтмле, а картинка была в боди. Но тогда высоту боди, а значит и рендер картинки, определяет контент туловища и картинка запросто не достанет до низа экрана. Тогда я перетащил фоновые картинки в хтмл и все стало зашибись, пока кто-то не открыл эту страницу на более широком экране: фон остался где был, а контент выровнялся по центру в заданной ширине. Ну, естественно, все стало очень непонятным на странице. Перетащив весь фоновый блок обратно в боди я увидел то же самое, ничего не поменялось. Оказывается вместе со стилями картинок я перетащил и стиль цвета. То есть лишил хтмл за каким-то хреном ему нужной дефиниции. Ну и все, отсюда начинается поиск ответов почему фон не встает в боди, а распространяется до хтмл. Ладно, хрен с ними, без всяких стилей страница по умолчанию - белый лист. Это явно не из технологии альфы вытекает такое отношение родителя и отпрыска из высшего света, а скорее всего результат практического применения. В общем чтобы и фон распространялся за туловище и оставался на месте когда оно центрируется, сделал так html{ background-image:url("/assets/images/header.jpg"), url("/assets/images/repeat.png"); background-repeat:no-repeat,repeat-y; background-size:1280px,1280px; background-position:top center,top center; background-color:#1b0206; } body{ max-width:1280px; margin:0 auto; } Это просто сайт такой, необычный - там большая картинка фоном и он потом еще доращивается полоской. Я таких раньше не делал, теперь знаю как. |
Теоретически если заставить боди растягиваться по вертикали до низа вьюпорта, то можно сделать по рекомендациям этих долбоящеров из вытри.орг
Это можно? |
Чаще всего body растягивают след. образом:
html, body { height: 100%; } |
Часовой пояс GMT +3, время: 08:01. |