В данном уроке я покажу Вам как с помощью CSS создать эффект двойного фонового изображения.

Данный урок был подготовлен американским блоггером SohTanaka.com

ПРОСМОТРЕТЬ НА ПРИМЕРЕ

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

Типичная техника растягивания

http://www.ruseller.com/lessons/les162/example1.gif

Эта часть изображения будет повторяться до полного заполнения страницы.

В нашем же примере нам понадобится фоновое изображение, которое будет повторяться и слева, и справа шапки. Как же достигнуть этого?


Техника двойного фонового изображения

http://www.ruseller.com/lessons/les162/example2.gif

Нам необходимо повторить оба рисунка (слева и справа) для достижения такого эффекта.

К сожалению, текущая версия CSS не способна справиться с двойными фоновыми изображениями. Надеюсь, что в будущем это изменится.

Эффект двойного фонового изображения

Решение состоит в использовании 2-х изображений, которые повторяются (одно для правой стороны и одно для левой).

HTML

Для повторяющегося изображения слева мы добавим фоновый рисунок к тегу <body>. Далее для решения проблемы с правой стороной мы добавим дополнительный слой <div>, который будет содержать второе фоновое изображение.

Код:
<div id="bg_wrap"></div> <!--Right-Side Repeating Background Image-->
    <div class="container"> <!-- Container Class to center align and have a fixed width / The image header.gif is just as an example for placement -->
<img src="header.gif" alt="" />
</div>

CSS

body {}
Тут мы задаем фон для левой стороны

Код:
body {
margin: 0;
padding: 0;
background: #e5e5e5 url(bg_body.gif) repeat-x;
position: relative;
}

#bg_wrap {}
Далее мы создаем вторую половину, добавляя абсолютную позицию, которая будет прикреплена справа

Код:
#bg_wrap {
height: 96px;
width: 50%;
right: 0;
background: url(bg_wrap.gif) repeat-x;
position: absolute;
}

.container
Этот класс будет контейнером всего содержания. Здесь мы определяем ширину, цвет фона, выравнивание по центру и позицию  'relative'.

Код:
.container {
width: 960px;
background: #e5e5e5;
margin: 0 auto;
overflow: hidden;
position: relative;
}

Финальный код

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Double Backgrounds with CSS - CSS/XHTML Tutorial by Soh Tanaka</title>
    <style type="text/css">
   body {
margin: 0;
padding: 0;
background: #e5e5e5 url(bg_body.gif) repeat-x;
position: relative;
}
#bg_wrap {
height: 96px;
width: 50%;
right: 0;
background: url(bg_wrap.gif) repeat-x;
position: absolute;
}
.container {
width: 960px;
background: #e5e5e5;
margin: 0 auto;
overflow: hidden;
position: relative;
}
</style>
</head>
<body>
  <div id="bg_wrap"></div>
  <div class="container">
  <img src="header.gif" alt="" />
  </div>
  </body>
  </html>


Взято