Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2015, 22:31
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Откуда начинается фон 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 пикс.
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2015, 07:14
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ладно, покажу на примере: http://jsfiddle.net/pjLs594y/3/

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

Поискал еще раз и подольше, все равно ответа так и не нашел.

Вопрос - почему и как заставить фон начинаться от края боди?

Последний раз редактировалось kostyanet, 10.04.2015 в 07:19.
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2015, 10:40
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

http://htmlbook.ru/css/border-style, а этим справочником пробовали пользоваться?
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2015, 11:58
Аватар для Zend
Профессор
Отправить личное сообщение для Zend Посмотреть профиль Найти все сообщения от Zend
 
Регистрация: 28.11.2009
Сообщений: 328

Сообщение от kostyanet
Вопрос - почему и как заставить фон начинаться от края боди?
padding: 0 мб боди поставить?
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2015, 14:46
Аватар для mikhail.golovkin
Интересующийся
Отправить личное сообщение для mikhail.golovkin Посмотреть профиль Найти все сообщения от mikhail.golovkin
 
Регистрация: 11.12.2013
Сообщений: 16

Это нормальное поведение и описано в спецификации: http://www.w3.org/TR/CSS21/colors.html

Цитата:
The background of the root element becomes the background of the canvas and covers the entire canvas, anchored (for 'background-position') at the same point as it would be if it was painted only for the root element itself. The root element does not paint this background again.

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.

Т.о. нужно элементу html установить либо цвет, либо фон.
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2015, 15:17
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

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

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

Оказалось потому что для body предусмотрено единственное исключение распространения стилей выше по иерархии. А поскольку выше только html - то он все и определяет.

Сообщение от mikhail.golovkin
Т.о. нужно элементу html установить либо цвет, либо фон.
Прикол, сработало.

Последний раз редактировалось kostyanet, 10.04.2015 в 15:20.
Ответить с цитированием
  #7 (permalink)  
Старый 10.04.2015, 15:56
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Запутался в трех соснах, я, короче.

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

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

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

Ну и все, отсюда начинается поиск ответов почему фон не встает в боди, а распространяется до хтмл.

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

В общем чтобы и фон распространялся за туловище и оставался на месте когда оно центрируется, сделал так



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;
}


Это просто сайт такой, необычный - там большая картинка фоном и он потом еще доращивается полоской. Я таких раньше не делал, теперь знаю как.
Ответить с цитированием
  #8 (permalink)  
Старый 10.04.2015, 16:11
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

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

Это можно?
Ответить с цитированием
  #9 (permalink)  
Старый 14.04.2015, 04:50
Аватар для mikhail.golovkin
Интересующийся
Отправить личное сообщение для mikhail.golovkin Посмотреть профиль Найти все сообщения от mikhail.golovkin
 
Регистрация: 11.12.2013
Сообщений: 16

Чаще всего body растягивают след. образом:
html,
body {
    height: 100%;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При вставке браузером сохраненных логина и пароля, фон не меняется glanse Общие вопросы Javascript 2 08.05.2011 15:19
код между body и body ie7 не видит alexandr_poskrobka (X)HTML/CSS 2 09.03.2010 18:35
Координаты body относительно окна при margin auto varanio Events/DOM/Window 2 19.02.2010 10:28
Определение координат body. Kolyaj Events/DOM/Window 10 04.04.2009 16:20
Как сделать фон, главной страницы на изображении ? asked86 (X)HTML/CSS 3 03.04.2009 02:54