![]() | |||||||||||||||||||||||||||||
Background и несколько фоновых картинок в CSS3Любой человек, когда-либо открывавший учебник по HTML, знает о свойствах, которые задают фон элемента:
<html>
В CSS они объединены в одно общее свойство - background.
<html>
Чтобы протестировать это свойство, "не отходя от кассы", попробуем применить его на простом блоке <div>...</div>. <style>
div { background: none; } </style> Итак, познакомьтесь, это ↑ наш <div> 500 на 100 пикселов с серой рамкой, на котором мы будем ставить эксперементы. По умолчанию фон у него прозрачный, но это ненадолго. Сейчас мы раскрасим его в какой-нибудь цвет, например, в оранжевый.
<style>
div { background-color: orange; } </style> Так уже немного веселее, правда? Цвет можно задавать разными способами: наименованием (orange), шестизнаком HEX (#ff8c00) или кодом RGB (255,165,0). К наименованиям прибегают редко, поскольку в разных браузерах разным наименованиям иногда соответствуют немного разные цвета. Чаще всего цвет обозначают шестизнаком.
<style>
div { background-color: orange; background-color: #ff8c00; background-color: rgb(255,165,0) } </style> Все эти три значения обозначают один и тот же оранжевый цвет. С цветом разобрались. Теперь мы хотим добавить добавить какое-нибудь фоновое изображение. Например, вот такое: http://i071.radikal.ru/1103/55/cb65d8f6468b.png →![]() Главное, чтобы орнамент на изображении равномерно повторялся. Если кого-то интересует, могу предложить отличный генератор полосатых фонов, чтобы не рассчитывать все по пикселам самим.
<style>
div { background-color: orange; background-image:url('http://i071.radikal.ru/1103/55/cb65d8f6468b.png'); } </style> Теперь наш див не только оранжевый, но еще и полосатый. ![]()
<style>
div { background-color: orange; background-image: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png') } </style> Теперь див стал пятнистым. Мы не хотим так много пятен. Давайте сделаем так, чтобы пятна у нас повторялись только по горизонтали.
<style>
div { background-color: orange; background-image: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png'); background-repeat: repeat-x; } </style> Или только по вертикали.
<style>
div { background-color: orange; background-image: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png'); background-repeat: repeat-y; } </style> А может, лучше оставить одно единственное пятно?
<style>
div { background-color: orange; background-image: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png'); background-repeat: no-repeat; } </style> Да, одного пятна достаточно, но слева оно только мешается. Давайте лучше передвинем его в центр.
<style>
div { background-color: orange; background-image: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png'); background-repeat: no-repeat; background-position: center center; } </style> А может, лучше в правый нижний угол?
<style>
div { background-color: orange; background-image: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png'); background-repeat: no-repeat; background-position: bottom right; } </style> Принцип понятен? Примеры можно продолжать до бесконечности. Чтобы Вам потом не снились эти оранжевые прямоугольники, с примерами я закончу и запишу все возможные значения свойста background ниже:
background-color: red; - красный цвет наименованием
Это все возможные значения. Только, чтобы не расписывать их на множество строк, как в нашем варианте:
<style>
Их для удобства обычно утрамбовывают в более компактную версию:
<style>
Да, прямо так нагло сгребают в одну строчку и валят.
На этом описание можно закончить, но перед этим я хочу показать Вам фишку, о которой писала во введении - о том, как закрепить за одним объектом сразу несколько фоновых изображений. Предупреждаю сразу: работать это будет не у всех, посколько не все браузеры поддерживают CSS3. Поэтому то, что я сейчас покажу, можно применять вспомогательно, но ни в коем случае не полагаться на это стопроцентно. Вспомним последний раз наш оранжевый прямоугольник. До сих пор мы размещали в нем либо полоски, либо пятна. А что если мы хотим и то и другое? В CCS3 можно накладывать неограниченное количество изображений, просто разделяя свойства background запятой.
<style>
div { background: url('http://s41.radikal.ru/i093/1103/8e/43cf100cde05.png') bottom right no-repeat, url('http://i071.radikal.ru/1103/55/cb65d8f6468b.png'); } </style> Видим полоски? А пятно в правом нижнем углу тоже видим? Если видим только пятно - у нас эксплорер. В остальных браузерах последних версий видно и полоски, и пятно. Обратите внимание на одну нелогичную деталь: изображение, которое идет в списке первым - накладывается поверх того, что идет вслед за ним. Это довольно странно, поскольку следующая настройка обычно перекрывает предыдущую. Здесь же все наоборот. Сначала мы указываем адрес пятна, а потом адрес полосок. Скажем "до свидания" нашему многострадальному диву и теперь рассмотрим пример посложнее, где нам нужно включить несколько разных изображений и рассовать их по разным сторонам страницы. Возьмем к примеру известный шаблон "Хоббит" от Arcsin. Откройте оригинальную версию шаблона, чтобы иметь ее перед глазами. Фон состоит из следующих фрагментов:
Помня о нелогичности порядка фоновых изображений, мы начнем перечисление с тех, которые находятся поверх других: bgfooter.gif (футер) и top.jpg (шапка), только после них bgcontainer.jpg (центр) и самым последним - bg.jpg (основной фон). В коде это выглядит так: <style>
Живой пример можете наблюдать в исходном коде сверстанной мной страницы. Как видите, моя версия почти ничем не отличается от оригинала. Однако в моей версии все фоновые изображения крепятся к <body> и значительно экономят место, а в оригинальной они разбиты на множество разных блоков. А шапка вообще разделена на шесть разных частей. Если откроете исходный код моей страницы, то увидите, что ВСЕ ее CSS оформление у меня уместилось ровно в десяти строчках. Такой способ перечисления фоновых изображений стал бы находкой, однако, напоминаю, что в эксплорере это работать не будет!
Рубрика: CSS |
Просмотров: 65683 |
Автор: Shizuku
| Рейтинг: 4.5/11
Комментарии:+1
![]() ![]() ![]() Код body { background: url('img/bgfooter.gif') bottom center no-repeat, url('img/top.jpg') top center no-repeat, url('img/bgcontainer.jpg') top center repeat-y, url('img/bg.jpg'); } Как в таком случае поменять цвет фона? Если надо? 0
![]() ![]() ![]() Добавить в самый-самый конец: Код body { background: url('img/bgfooter.gif') bottom center no-repeat, url('img/top.jpg') top center no-repeat, url('img/bgcontainer.jpg') top center repeat-y, url('img/bg.jpg') #000000; } или записать отдельно для перестраховки: Код body { background-color: #000000; background: url('img/bgfooter.gif') bottom center no-repeat, url('img/top.jpg') top center no-repeat, url('img/bgcontainer.jpg') top center repeat-y, url('img/bg.jpg') } 0
![]() ![]() ![]() Спасибо за статью! Честно говоря, долгое время вообще думал, что указать более одной картинки нельзя и изобретал всякие костыли. 0
![]() ![]() ![]() Спасибо за интересную инфу. 0
![]() ![]() ![]() Здравствуйте! А как это можно применить для всех изображений сразу? Чтобы они вписывались в размер окна браузера? 0
![]() ![]() ![]() Hi, I think anido.3dn.ru has so much room to grow. You're operating in an industry that has lots of competitors, but also has a lot of customers. We have been marketing web-sites for over 8 years and we would be glad to explain how you can improve your online presence. This is a free consultation and once you learn more about our approach we can talk about potentially delegating this work to us. anido.3dn.ru is a great resource and it would be our pleasure to help you grow it to it's full potential. Simply reply to this email and we can schedule a quick call or continue by email. Appreciate your time Alexander qc-digital |
| ||||||||||||||||||||||||||||
В этом блоге публикуются полезные заметки о программировании, дизайне и сайтостроении, а также переводы манги, видео и электронных книг на русский. Все права на текстовый контент принадлежат хозяйке сайта. При копировании материалов с этого сайта обязательна активная ссылка на источник! Google · Автор дизайна Evan Eckard, а Хостинг от uCoz |
|