Как добавить два фоновых изображения к одному элементу?

Средняя сложность

Раздел: Фоновая картинка

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

В CSS 2 напрямую нельзя добавить два фона к одному элементу, поэтому приходится идти на хитрость и вкладывать один элемент внутрь другого. При этом для каждого вложенного элемента создается своя фоновая картинка, за счет наложения блоков и рождается эффект, что элемент один, и он содержит несколько фоновых изображений. Здесь важно не добавлять отступы к внешним элементам, иначе эффект будет потерян.

Для примера рассмотрим создание вертикальных декоративных линий слева и справа от блока. Для этого вначале подготовим изображения, которые должны без стыков повторяться по вертикали. На рис. 1 показано фоновое изображение, которое будет применяться для первого элемента, оно будет формировать границу слева, а на рис. 2 фон для вложенного элемента, который добавляет границу справа.

Фоновая картинка для границы слева

Рис. 1. Фоновая картинка для границы слева

Фоновая картинка для границы справа

Рис. 2. Фоновая картинка для границы справа

В качестве блочного элемента, к которому добавляется фон, обычно используется тег <div> в силу его удобства и универсальности. Фоновое изображение устанавливается стилевым свойством background, как показано в примере 1.

Пример 1. Два фоновых изображения

XHTML 1.0CSS 2.1IE 7IE 8IE 9Cr 11Op 11Sa 5Fx 4

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Два фоновых изображения</title>
  <style type="text/css">
   BODY {
    background: #f2f0e3; /* Цвет фона веб-страницы */ 
   }
   DIV.block {
    background: #fff url(images/bg_left.gif) repeat-y; /* Параметры левого фона */
    width: 400px; /* Ширина блока */
   }
   DIV.block DIV {
    background: url(images/bg_right.gif) repeat-y 100% 0; /* Параметры правого фона */
    padding: 10px; /* Поля вокруг текста */
   }
  </style>
 </head>
 <body>
  <div class="block">
   <div>
     За 11 месяцев вахты радисты провели 8642 сеансов связи общим 
     объемом 300625 групп. Это только метео и аэротелеграммы. 
     Принято от радиостанции мыс Челюскин 7450 групп.
   </div>
  </div>
 </body>
</html>

Результат данного примера показан на рис. 3.

Вид блока с двумя фоновыми картинками

Рис. 3. Вид блока с двумя фоновыми картинками

В данном примере, чтобы фон добавлялся только к нужному тегу <div>, а не ко всем подобным элементам на странице, используется класс с именем block, к которому и применяются все стилевые свойства. Чтобы задать стиль только для вложенного <div> в примере указывается контекстный селектор (конструкция DIV.block DIV), он определяет стиль только для тега <div>, расположенного внутри <div class="block">.

Другие статьи по теме

Два фона и больше

В CSS 2 добавить одновременно два фона к одному элементу нереально, поэтому приходится вкладывать один элемент внутрь другого и для каждого задавать свой собственный фоновый рисунок. Для сложных макетов таких вложений иной раз можно насчитать около десятка. Понятно, что ни к чему хорошему такое нагромождение не приводит, но что делать? Оказывается, есть что! В CSS 3 можно одновременно добавлять несколько фоновых рисунков для любого элемента. Так что берем рисунок блока (рис. 1), режем его на части и начинаем тестировать в браузерах.

Как добавить две фоновые картинки на веб-страницу?

Добавление одновременно двух фоновых изображений обычно продиктовано дизайном веб-страницы. При этом, как правило, один фон повторяется по горизонтали или вертикали, а второй фон выводится без всякого повторения. Впрочем, подобные детали зависят целиком и полностью от воли дизайнера, поэтому рассмотрим универсальную технологию добавления двух фоновых картинок.

Несколько фоновых рисунков

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

фон

Если вам понравились материалы сайта, вы можете поддержать сайт, купив Рецепты CSS в формате CHM или в виде набора HTML-файлов за 50 р.