- Графические форматы
- Изображения
- Фоновая картинка
- Как добавить два фоновых изображения к одному элементу?
- Как добавить две фоновые картинки на веб-страницу?
- Как добавить фоновый рисунок на веб-страницу?
- Как поместить фоновый рисунок в правый нижний угол страницы?
- Как растянуть фон на всю ширину окна браузера?
- Как сделать, чтобы фон не повторялся?
- Как сделать, чтобы фон повторялся только по вертикали?
- Можно ли сделать анимированный фон?

Разделы
Как растянуть фон на всю ширину окна браузера?
Метки:
В отличие от обычной картинки, добавляемой через тег <IMG>, фоновый рисунок напрямую никак не получится растянуть. Но можно пойти на хитрость и расположить картинку в качестве нижнего слоя, а остальное содержимое веб-страницы поместить поверх него.
Для этого создаем с помощью тега <DIV> два слоя, назовем их layer1 и layer2 и определим их порядок через стилевой атрибут z-index. Чем больше значение этого параметра, тем выше располагается текущий слой относительно других слоев. Также необходимо задать абсолютное позиционирование для каждого слоя (пример 1).
Пример 1. Растягиваемый фон
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Растягиваемый фон</title>
<style type="text/css">
#layer1 {
z-index: 1; /* Порядок слоев */
width: 100%; /* Ширина слоя с фоном */
height: 100%; /* Высота слоя с фоном */
position: absolute; /* Абсолютное позиционирование */
left: 0; /* Положение от левого края окна */
top: 0; /* Положение от верхнего края */
}
#layer2 {
position: absolute; /* Абсолютное позиционирование */
z-index: 2; /* Порядок слоев */
}
</style>
</head>
<body>
<div id="layer1">
<img src="help.gif" width="100%" alt="">
</div>
<div id="layer2">
Основное содержимое веб-страницы
</div>
</body>
</html>
Для слоя layer1 требуется установить ширину и высоту равную 100% и координаты левого верхнего угла задать нулевыми. Тогда не возникнет горизонтальной полосы прокрутки. Обратите внимание, что в самом теге <IMG> указана только ширина изображение без высоты. Это сделано для того, чтобы сохранить пропорции картинки, в противном случае в браузере Opera возникнут искажения.
Результат данного примера показан на рис. 1.

Рис. 1. Вид фона при уменьшенном размере окна
При увеличении размера окна браузера фон также начнет расширяться, это приведет к ухудшению вида картинки (рис. 2).

Рис. 2. Вид фона при увеличенном размере окна

Здравствуйте!
Скажите, пожалуйста, как растянуть фон так, чтобы всё содержимое страницы было на этом фоне.
Я в отдельный файл помещаю стили:
#layer1 {
z-index: 1;
width: 100%;
position: absolute;
left: 0;
top: 0;
}
#layer2 {
position: absolute;
z-index: 2;
}
в HTML-документе:
<div id="layer1">
<img src="fon2.gif" width="100%" alt="">
</div>
<div id="layer2"> далее описание содеожимого
#layer1 {
z-index: 1; /* Порядок слоев */
width: 100%; /* Ширина слоя с фоном */
height: 100%; /* Высота слоя с фоном */
position: absolute; /* Абсолютное позиционирование */
left: 0; /* Положение от левого края окна */
top: 0; /* Положение от верхнего края */
}
#layer2 {
z-index: 1; /* Порядок слоев */
width: 100%; /* Ширина слоя с фоном */
height: 100%; /* Высота слоя с фоном */
position: absolute; /* Абсолютное позиционирование */
left: 0; /* Положение от левого края окна */
top: 0; /* Положение от верхнего края */
}
Здесь чуток исправлено и добавлено для слоя #layer2 в стиле. если использовать так как написано в примере - то будет сдвиг второго слоя. Этот сдвиг видимо появляется из-за того что неуказанные параметры top,left,widgh,height устанавливаются по умолчанию.
Спасибо большое! Как раз то что искала)
Интересно конечно, но если я пишу таблицу вместо обычного текста и ее после ставлю по центру как по горизонтали, так и по вертикали, то она(таблица) все равно липнит к левому краю...
Нашел в чем проблема - left: 0; /* Положение от левого края окна */
Если аналогичную запись добавить в layer2, только равным к примеру 5%, соблюдение равного расстояния с права и лева нет. :-(
Огромное спасибо!
Для того что бы все работало, layer2 должен быть таким:
#layer2
{
position: absolute;
z-index: 2;
width: 100%;
}
УРА!!!!!!!!!!У меня получилось!!!!!Спасибо Вам огромное! Я уже отчаялась найти хоть какое-либо решение, но тут обнаружила Вашу страничку.Теперь все работает как надо!!!!!!!!!!!!!!!!;))))))))))))))))))))
спасибо огромное!!! всё получилось!!!
У мнея наоборот картинка слишком большая, я хочу чтобы на всех мониках отображалась одинаково. Вот нуна ее типа растянуть по экрану но в то-же время уменьшить вот css файл:
@charset "utf-8";
body {
margin: 0;
padding: 0;
font-size: 100.01%;
font-family: Verdana, Arial, sans-serif;
color: #9D533C;
background-color:#000000;
/*background-image:url(../images/bg.jpg);*/
background-position:center;
text-align:center;
/* min-width:100%;
height:100%;*/
}
h1, h2, h3, h4, h5, h6, p, form {
margin: 0;
padding: 0;
}
img {
border: none;
}
ul, ol, li {
padding: 0;
margin: 0;
list-style: none;
}
.clearMe {
clear: both;
line-height:0px;
}
form {
display:inline;
}
.invisible { display: none;}
Здравствуйте!
Подскажите как растянуть фоновую картинку так, что бы она не размножалась вертикальной полосой справа и горизонтальной снизу.
Сейчас у меня так.
body{
background: url('адрес картинки');background-attachment:fixed;}
2Slawa, 01.06.2009 background-repeat:no-repeat; добавь и все! А за CSS по фону спасибо!
Если все правильно понял, то background-repeat: no-repeat;
Отправить комментарий