Background url


Думаю, нет ни одного сайта, где не использовалось бы свойство CSS background. Казалось бы, что может быть проще этого свойства? Но нет, его возможности гораздо шире обычного назначения картинки или цвета в качестве фона страницы. Что-то будет знакомым, а что-то наверняка для многих станет новинкой. В любом случае — досконально знать, как работает background будет полезно.

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

background-color

Я более чем уверен — вы уже неоднократно делали назначение цвета фона. Сделать это можно используя несколько видов записи: обычную(используется название цвета), шестнадцатиричную или RGB-запись. Каждый тип равнозначен, используйте какой больше нравится. Я стараюсь использовать наиболее короткий вариант, и для восприятия попроще и файл стилей чуть поменьше получается размером.


    p {background-color: red;}  p {background-color: #f00;}  p {background-color: #ff0000;}  p {background-color: rgb(255, 0, 0;)}    

В CSS3 внедрена поддержка прозрачности, поэтому можно и ее добавить к нашему цвету, например так:

    p {background-color: rgba(255, 0, 0, 0.5);}    

Последней цифрой установили прозрачность в 50%. Можно установить значение прозрачности от 0 (полностью прозрачный фон) до 1 (полностью непрозрачный).

background-image

Это свойство тоже используется очень часто, позволяет присваивать фону изображение. В CSS3 добавлена возможность присваивать фону несколько изображений, причем каждое создает своеобразный слой, поэтому каждое последующее накладывается на предыдущее. Зачем это может пригодиться? Все достаточно просто — допустим, нужно прикрутить рюшечки в каждом из углов сайта. При условии более-менее резиновой верстки использовать одно изображение — не вариант. Поэтому делаем 4 «слоя», каждое изображение двигаем в свой угол и на этом все, задача решена

    body {background-image: url("image1"), url("image2"), url("image3")}    

Если нужно назначить одно изображение на фон — в коде оставляем только первое, думаю, это понятно.
Используя любые изображения в качестве фона следует помнить два правила:

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

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

background-repeat

C точки зрения технической оптимизации — очень полезное свойство . Позволяет размножить одну маленькую картинку на большую площадь. При этом, картинка должна быть бесшовной, чтобы не было видно границ. Может принимать 6 различных значений, 4 из которых я раньше использовал, а вот два последних стали для меня открытием.

Итак, подробнее:

  • no-repeat. Картинка не повторяется, все просто
  • repeat-x. Повторяется только по горизонтали
  • repeat-y. Только по вертикали
  • repeat. Как по горизонтали, так и по вертикали.
  • space. Все пространство заполняется максимально возможным количеством изображений, первое и последнее (по горизонтали и вертикали) поровну обрезаются
  • round. Аналогично предыдущему, с тем отличием, что первое и последнее масштабируются для заполнения

Возьмем пример из предыдущего раздела, с несколькими изображениями и применим заполнение:

    body {  background-repeat: no-repeat, repeat-y, space;  }    

Первое не будет повторяться, второе будет, но только по вертикали и третье заполнит всю доступную область.

background-attachment

Свойство определяет, как будет вести себя фон при изменении области просмотра. Самый яркий пример — будет ли он сдвигаться при прокрутке? Честно говоря, считаю его бесполезным, не припомню, чтобы когда-либо применял подобный эффект, но некоторым нравится.

Может быть присвоено три значения:

  • fixed. Изображение не прокручивается
  • local. Изображение прокручивается с контентом, но не с элементом, его содержащим.
  • scroll. Изображение прокручивается с элементом, его содержащим.

background-position

А вот одно из самых важных свойств. Определяет, где конкретно будет расположен фон. По умолчанию, он располагается в верхнем левом углу окна браузера. Можно устанавливать положение по горизонтали, вертикали или по обеим сторонам. В случае горизонтали это центр, слева и справа (center, left,right), вертикаль это центр, сверху и снизу (center, top, bottom). Также прекрасно распознаются значения в процентах или пикселах, например так:

    body {  background-position: right 20px;  }    

Эта запись означает, что фон будет располагаться справа и на 20px смещен вниз. Когда используется два значения — первое обозначает горизонтальное расположение, а второе — вертикальное. Когда только одно значение — второе по умолчанию будет в центре.


При процентной записи — отсчет идет из верхнего левого угла. Например, такая запись:

    body {  background-position: bottom 10px right 20%;  }    

переместит фон на 10px от нижнего края и на 20% от правого.

background-clip

Свойство появилось с приходом CSS3, поддерживается хорошо. Все браузеры, кроме IE8 и ниже — замечательно с ним работают. Свойство определяет, как фоновая заливка или изображение должны отображаться под границами элемента. Эффект заметен только в случае полупрозрачных или пунктирных границ, показано на иллюстрации (взял на htmlbook.ru, очень уж удачная)

Background url
Итак, три типа значения, на картинке наглядно видна разница:

  • padding-box. Фон будет отображаться без учета границы
  • border-box. Фон на весь размер блока
  • content-box. Фон без учета границы и отступа.

Полезность свойства вызывает сомнения, но все же, может кому и пригодится.

background-origin


Свойство практически полностью аналогично предыдущему, с той разницей, что оно обозначает, как будет расположен фон. Значения аналогичны предыдущему. И небольшое уточнение — если свойство background-attachment имеет значение fixed — тогда это свойство работать не будет.

background-size

Хотя фон может быть любого размера, вы можете контролировать его размер на своей странице, как горизонтальный, так и вертикальный.

Значения могут быть как в процентной записи, так и в пикселах. Первое — горизонтальный размер, второе — вертикальный. Отрицательные значения не допускаются, имейте ввиду.

    body {  background-size: 500px 50%;  }    

Если указано только одно значение — второе считается по умолчанию (auto или 100%, если это возможно).

Также, можно указать еще два значения, которые будут регулировать размер фонового изображения:

  • contain. Масштабирует изображение, сохраняя пропорции, по длинной стороне, для максимального заполнения
  • cover. Тоже самое, но масштабирует по короткой стороне.

Сокращенная запись

Независимо от того, в каком порядке указаны свойства в краткой записи, работать они будут. Но это не валидно (код будет неправильным с точки зрения стандартов), W3C рекомендует применять такой порядок:


    body {  background-image: url("image.png");  background-position: top left;  background-size: 95% 95%;  background-repeat: no-repeat;  background-attachment: scroll;  background-origin: padding-box;  background-clip: content-box;  background-color: #333};  }    

Или краткий вариант записи:

    body {background: url("image.png") top left / 95% 95% no-repeat scroll padding-box content-box #333;}    

Они идентичны, но второй вариант занимает намного меньше места и грузится быстрее.

Вот и все, что я хотел рассказать про CSS background. При написании использовалась статья товарища Van SEO Design. Если остались вопросы — задавайте в комментариях, расскажу подробнее. Ну и не забывайте подписываться на обновления блога

Удачного дня

gering111.com

Виталий Зданевич
Спасибо большое, Наталья, но я ничего не понимаю…

Какой же мне код написать в блок Блоггера, чтобы Клац — белый фон! Клац снова — обратно черный!

NMitra
В код


<body class='loading'>

добавляем

<body class='loading' id="fon">

В гаджет HTML/JavaScript

<input onclick="getElementById('fon').style.backgroundColor='#fff';" type="button" value="белый цвет" />

NMitra
Или ещё интересней. id для body также необходим. А в гаджет добавляем

<style type='text/css'>
.elementoVisible {background: #fff;}
.linkContraido {
     cursor: pointer;
     background: #FFF;
     
}
.linkExpandido {
     cursor: pointer;
     background: #000;
  }
</style>

<script type='text/javascript'>
     function desplegarContraer(cual,desde) {
          var elElemento=document.getElementById(cual);
          if(elElemento.className == 'elementoVisible') {
 .


#160;           desde.className = 'linkExpandido';
          }
}
</script>
<div onclick="desplegarContraer('fon',this);" class="linkContraido">TEXTO</div>
NMitra
Образец — http://prilozhenie5.blogspot.com/ (несколько примитивный, но даёт понять суть)

фон тёмный — кнопка белая

щелчок

фон белый — кнопка тёмная

Виталий Зданевич
Так этот код меняет только фон вне колбасы основной части блога (как в примере)? А чтобы весь фон менялся, колбаса и основной?
NMitra
Вот этот участок должен выглядеть как:


<Group description="Backgrounds" selector=".body-fauxcolumns-outer">
     <Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd" value="#292929"/>
     <Variable name="content.background.color" description="Main Background" type="color" default="#ffffff" value="transparent"/>
     <Variable name="header.background.color" description="Header Background" type="color" default="transparent" value="transparent"/>
   </Group>

Перед ]]></b:skin> внести

.post-outer { background-color: transparent; }

Виталий Зданевич
Столько кода — я совершенно ничего не понимаю… Это разные варианты или исправления?..

Что же писать в темплейт и что-же — в гаджет?.. Мол:


В темплейте между X и Y пишем:

xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx

В код нового гаджета пишем:

xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx

NMitra
Комментарий 6 — изменения в "Дизайн"-"Изменить HTML".

Комментарий 2 — там же добавляем id="fon" в body.

Комментарий 3 — вносим код в новый гаджет HTML/JavaScript.

Виталий Зданевич
Там же это перед ]]> ?
Виталий Зданевич
съелся тег

] ] > < / b : s k i n >

NMitra
Там же — это в "Дизайн"-"Изменить HTML".
NMitra
Для того, чтобы и менялся текст:

<style type='text/css'>
.elementoVisible {background: #fff;}
.linkContraido {
     cursor: pointer;
     background: #FFF;padding-top: 10px;
     display: block; width: 170px; height: 20px;
width: 170px;
box-shadow: inset 0px 0px 6px #fff;
-webkit-box-shadow: inset 0px 0px 6px #fff;
border: 1px solid #5ea617;
border-radius: 10px;

font: bold 15px/10px Helvetica, Sans-Serif; text-align: center;
text-transform: uppercase; text-decoration: none;
color: #000;
text-shadow: 0px 1px 2px #b4d1ad;

-moz-transition: color 0.25s ease-in-out;
-webkit-transition: color 0.25s ease-in-out;
transition: color 0.25s ease-in-out;
}
.linkExpandido {
     cursor: pointer;padding-top: 10px;
     background: #000;
 display: block; width: 170px; height: 20px;
width: 170px;
box-shadow: inset 0px 0px 6px #fff;
-webkit-box-shadow: inset 0px 0px 6px #fff;
border: 1px solid #5ea617;
border-radius: 10px;

font: bold 15px/10px Helvetica, Sans-Serif; text-align: center;
text-transform: uppercase; text-decoration: none;
color: #fff;
text-shadow: 0px 1px 2px #b4d1ad;

-moz-transition: color 0.25s ease-in-out;
-webkit-transition: color 0.25s ease-in-out;
transition: color 0.25s ease-in-out; }
.elementoVisibleheader {background: #000;}</style>

<script type='text/javascript'>
     function desplegarContraer(cual,desde) {
          var elElemento=document.getElementById(cual);
          if(elElemento.className == 'elementoVisible') {
               elElemento.className = 'body';
               desde.className = 'linkContraido';
               desde.innerHTML = 'белый';
                   } else {
               elElemento.className = 'elementoVisible';
               desde.className = 'linkExpandido';
               desde.innerHTML = 'чёрный';
                      }
}

</script>
<div onclick="desplegarContraer('fon',this);" class="linkContraido">Сменить фон</div>

Наталка Михайлівна Зуб
Скажите пожалуйста, как поменять фон вкладок в меню. У меня меню белое, а нужно например такое #4682B4(блог темно синий и белое меню смотрится некрасиво). Когда я меняю его в background: #fff — получается фон простых менюшек синий, а многоуровневых — остается белый(причем фон выпадающих из них подменю синий). И еще вокруг меню белая окантовка остается, очень мешает. Можно ли её убрать?
NMitra
Покажите на скриншоте что вы хотите.
Наталка Михайлівна Зуб
Если бы я еще знала, что такое скриншот…
Наталка Михайлівна Зуб
В общем, я бы хотела сделать меню, как описано здесь:http://www.portal-sayt.my1.ru/publ/vertikalnoe_menju_92_navigacija_sajta/1-1-0-16. Но здесь оно белое, а мне нужно например синее (под мой блог http://revival2012nataliz.blogspot.com), белое не смотрится.Как это сделать? И можно ли убрать окантовку меню(оно остается белым).
NMitra
Удалите
border: 1px solid rgb(140, 140, 140);
Замените
.suckerdiv ul li a{
background: #4682B4;
}
Наталка Михайлівна Зуб
Это нужно заменить в коде меню? Я там заменила, но все осталось как было.
NMitra
http://rezultat-blog.blogspot.ru/
Первая статья тестового блога.
Наталка Михайлівна Зуб
ОГРОМНОЕ ВАМ СПАСИБО!!!!!!! Вы просто даже не представляете, как вы мне помогли!БОЛЬШОЕ БОЛЬШОЕ СПАСИБО ТЫСЯЧУ РАЗ!!!!!!!!!!!!
Наталка Михайлівна Зуб
Последний вопрос — его можно вставить как гаджет, или только через шаблон. Как лучьше?
NMitra
HTML код в гаджет HTML/JavaScript. Стиль CSS в соответствующее поле "Дизайнера шаблонов" — http://shpargalkablog.ru/2011/12/kak-izmenit-shablon-blogger.html
NMitra
Но такой код я бы весь внесла в гаджет.
Наталка Михайлівна Зуб
Спасибо еще раз. Я действительно наверное весь код внесу в гаджет, а то у меня там в шаблоне уже столько всего внесено, что потом не разберешься.
Наталка Михайлівна Зуб
Блин, ну я тупая. Все сделал, заменила в коде меню все ссылки на свои, свои названия. Все работает, кроме выдвигающихся подменюшек(они не выдвигаются их не видно).Там еще не знаю какой адрес ссылки нужно в этом месте:"subfolderstyle" href="http://forever-web.ru/load/12" Программы И ЗДЕСЬ "subfolderstyle" href="http://forever-web.ru/load/1" Все для uCoz(Это пункты меню,кот.с подменю)
NMitra
Ваши любые ссылки.
Юрий
Наташа, уже несколько раз сталкивался с проблемой адаптивного background, но пока не нашел достойного способа решения. Суть в том, что при прописывании background-size: 100% auto (или background-size: 100% 100%) при уменьшении ширины экрана изображение пропорционально уменьшается. Но… При этом оно "уезжает" вверх (срабатывает автоматически определяемая высота auto). Если background — фон всего шаблона, то особых проблем нет. Другое дело, если background — это баннер в хедере. Тогда между ним и нижележащей секцией при сужении экрана образуется огромный промежуток. Как от него избавиться средствами css?
Пока что знаю только один способ: сделать несколько дополнительных изображений соответстующего размера и прописать пути к этим картинкам посредством медиа запросов для разных разрешений мониторов. Но этот вариант отнимает прилично времени, т.к. приходится еще позиционировать background. Может существует более простой вариант?
NMitra
Живой пример нужен, сделайте на странице все изменения, отпишитесь в комментариях куда смотреть. Таких проблем в общем-то не должно быть, особенно если указывать background-position
Юрий
Наташа, добрый день. Вот ссылка на заготовку этой темы:
http://test.a-cont.ru/?themedemo=Cipriano
Чтобы было нагляднее, шаблон разместил на сайте третьего уровня.
NMitra
Надо пропорционально изменять размеры .pizza_main2

<div class="pizza_main2"></div>

.pizza_main2 {
width: 100%;
padding-top: 40%;
background: url(http://4.bp.blogspot.com/-Nq5KPM8uNjk/UFbSS3v0Z5I/AAAAAAAADNQ/3MxRKB-jfqo/s00/parovozik.jpg) no-repeat;
background-size: 100% auto;
}

Подробнее http://shpargalkablog.ru/2012/06/kartinka-po-razmeru-ekrana-css.html#video Верно я поняла проблему?

NMitra
width: 100%; не обязательно писать
Юрий
Наташа, .pizza_main1 и .pizza_main2 — это два изображения, наложенные друг на друга.
.pizza_main2 — прозрачная (opacity: 0;).
При наведении курсора это изображение появляется (:hover {opacity: 1;}). Тут все нормально.
Дело в том, что при уменьшении ширины экрана образуется большой разрыв между баннером и нижележащей секцией, озаглавленной "Наши преимущества". Как избежать появление этого промежутка просто не знаю…
NMitra
Сделайте для них одну обёртку, а .pizza_main1 и .pizza_main2 рассчитайте в процентах от обёртки
Юрий
Спасибо! Буду пробовать…
Юрий
Наташа, спасибо большое за ваши советы. Воспользовался инфой с вашего предыдущего комментарии (где упоминается padding-top: 40%). Сначала не смог понять, для чего он нужен. Оказалось, что с его помощью изображение как раз и адаптируется.
Прописал для изображения
:before
content: "";
display: block;
width: 100%;

а затем
background-size: cover;
padding-bottom: 56.25%
В итоге все получилось.
Еще раз большое спасибо!

Pashok927
Здравствуйте Наталья,делаю сайт,мне хотелось бы реализовать на своем сайте как бы 2 фона:что бы первый фон был картинкой сверху ,а потом плавно переливался в какой-нибудь цвет,примерно как реализовано здесь -http://www.igromania.ru/
Буду благодарен за помощь в реализации.
NMitra
Здравствуйте, картинка тяжёлая, поэтому её подгружают в последнюю очередь, например, с помощью window.onload. В Фотошопе когда сохраняете картинку, то ставьте галку Interlaced — будет плавная загрузка.
NMitra
То есть изначально стоит только background-color, а потом добавляют background-image. Пример того, как с помощью JavaScript можно поменять CSS http://shpargalkablog.ru/2013/08/appendchild-removechild-javascript.html#sozdat Только вам нужно не при клике, а при полной загрузки остальных элементов страницы.
Анонимный
Добрый день. Подскажите, пожалуйста, есть ли у Вас статья про CSS фильтры и их использование. CSS Filter blur родительский элемент передается. А как сделать чтобы на другие блоки свойство blur не передавалось?
NMitra
Добрый день. Толком не разбиралась, но ведёт себя как ожидается http://jsfiddle.net/NMitra/tqdfsytp/

img {
position: absolute;
left: 0;
-webkit-filter: opacity(.4) blur(5px);
filter: opacity(.4) blur(5px);
}

Анонимный
Спасибо большое за ответ. Нет ли возможности применить свойство blur к div с классом "one", а div'у с классом "two", что находится в предыдущем div'e убрать использование сво-ва blur.
div class="one"тест div class="two" еще текст /div
/div
.one{
width:500px;height:300px;background:gold;
-webkit-filter: opacity(.7) blur(5px);
filter: opacity(.7) blur(5px);
}
.two { width:300px;height:100px;background:black;
-webkit-filter: blur(0px);
filter: blur(0px);}
П.с. простите за тяжелый русский))
NMitra
Поняла как с opacity ( http://shpargalkablog.ru/2013/02/opacity-css.html )

Можно через вложенный div http://jsfiddle.net/NMitra/tqdfsytp/1/

<style>
#one {
position: absolute;
-webkit-filter: blur(5px);
filter: blur(5px);
}
</style>

<div>
<div id="one">раз раз раз</div>
<div id="two">два два два</div>
</div>

NMitra
Ещё забыла добавить
z-index: -1;
Муслим Гасанов
Спасибо. Вы очень помогли.

shpargalkablog.ru

Атрибуты для изменения параметров фона

В коде, написанном на языке HTML, background устанавливается как для всей страницы, так и для отдельных ее элементов. Ранее для этого использовался тег <body>, но теперь подобная практика считается устаревшей. Атрибут применялся до спецификации 4.01 и так записывался в HTML: <body background=»»>. Сейчас самый простой способ для изменения значения по умолчанию — это задать свойства атрибуту background-color для тега <body>.

Существует пять основных атрибутов, которые используются в HTML и CSS для изменения фона:

  • -color — указывает, какой цвет будет использоваться для заливки;
  • -image — устанавливает изображение для фона;
  • -position — указывает, куда поместить фоновое изображение;
  • -repeat — определяет, является ли изображение повторяющимся;
  • -attachment — определяет, будет ли изображение прокручиваться вместе со страницей;
  • -size — задает фону определенный размер;
  • -origin — определяет область для позиционирования фонового изображения;
  • -clip — определяет, как фоновое изображение или фоновый цвет отображается под границами элемента.

Первые пять свойств могут быть объединены в один короткий атрибут — background. Атрибут работает в браузерах Firefox, Safari, Opera, IE8. Только в устаревших IE7 и IE6 фон не включает в себя границы.

Как изменить цвет фона в HTML

Атрибут “цвет фона” (background-color в HTML и CSS) заполняет страницы сплошным цветом. Существует несколько способов задать цвет, используя разные форматы:

  • -color: red;
  • -color: rgb(0, 0, 255);
  • -color: #2500ff.

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

Как установить фоновую картинку

Background-image — это свойство, позволяющее указать изображение, которое будет отображаться вместо фона. Оно задается при помощи кода CSS и языка HTML: background-image: url(image.jpg). Код очень прост, но для того чтобы он работал, картинка должна находиться в той же папке, что и файлы со стилями. Если это не так, в скобках нужно указать правильный адрес, например: background-image: url(images/image.jpg). Фоновое изображение может быть использовано в сочетании с background-color. Если оно не повторяющееся, то остальное, не закрытое картинкой пространство, будет иметь цвет, заданный в этом свойстве.

Положение фона

Атрибут CSS и HTML background-position управляет расположением фонового изображения и определяет, где именно оно находится в элементе. С его помощью можно указать, где будет находиться верхний левый угол изображения относительно верхнего левого угла элемента. Сначала в свойстве записывается положение по горизонтальной оси координат, а затем — по вертикальной. Для этого удобнее использовать пиксели.

Например:

  • -position: 0 0 — используется по умолчанию и указывает на расположение фона в верхнем левом углу элемента;
  • -position: 100px 0 — сдвинет изображения вправо;
  • -position: -100px 0 — сдвинет изображение влево;
  • -position: 0 100px — опустит изображение вниз.

Атрибут background-position также работает с другими значениями, ключевыми словами и процентами. Они могут быть полезны, если размер элемента не задан в пикселях.

Как использовать ключевые слова для расположения фона

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

  • left;
  • center;
  • right.

Для вертикальной оси:

  • top;
  • center;
  • bottom.

При работе с другими единицами измерения сначала задаются координаты по горизонтальной оси, а затем по вертикальной. Например, background-position: bottom right. Процентные значения используются аналогичным образом. При этом точка отсчета находится в верхнем левом углу окна браузера. Пример использования процентов: background-position: 100% 50%. Это значит, что изображение сместится вправо и окажется в центре правой части элемента. Тот же эффект можно получить, если использовать свойство: right center. Если применять значение background-position: 100% 100%, тогда фон окажется в правом нижнем углу элемента.

Повторение фона

По умолчанию при установке изображения в качестве фонового, оно повторяется как по горизонтали, так и по вертикали, пока не будет заполнено все окно браузера или элемент. Но иногда требуется, чтобы изображение показывалось только один раз или располагалось только в одном направлении. Для этого в CSS и HTML для background понадобятся следующие атрибуты:

  • -repeat: repeat — по умолчанию, изображение повторяется до полного заполнения элемента;
  • -repeat: no-repeat — изображение не повторяется и используется на странице только один раз;
  • -repeat: repeat-x — повторение только по горизонтальной оси;
  • -repeat: repeat-y — повторение только по вертикальной оси;
  • -repeat: inherit — браузер использует значение, присвоенное родительскому элементу.

Атрибут для полосы прокрутки

В HTML background-attachment определяет, что происходит с картинкой, когда пользователь прокручивает страницу. У этого атрибута есть несколько свойств: scroll, fixed и inherit. Inherit сообщает, чтобы background-attachment наследует свойство своего родителя. Для правильного использования background-attachment, нужно задуматься о том, как пользователь будет взаимодействовать с окном просмотра. Окно просмотра — это раздел вашего браузера, который отображает веб-страницу. При прокрутке сайта вниз, оно не перемещается. Вместо этого содержимое страницы прокручивается вверх, но создается впечатление, что в окне браузера страница прокручивается вниз.

При установке свойства HTML background-attachment: scroll, браузеру сообщается, что фон должен прокручиваться вместе с элементом. Фон “прилипает” к элементу и прокручивается, пока не исчезнет. Это значение по умолчанию для background-attachment. Но когда устанавливается свойство background-attachment: fixed, то фон должен оставаться на своем месте и не сдвигаться вместе с контентом. При прокрутке страницы вниз, он всегда остается видимым.

Как коротко записать свойства background

Вместо того, чтобы каждый раз писать отдельно все эти правила, их можно объединить их в одно и записать в следующем виде: background: <color> <image> <position> <attachment> <repeat>. И не нужно указывать каждое значение отдельно. Если свойство не используется, вместо него будет срабатывать значение по умолчанию. Важно отметить, что фоновое изображение появляется только в тех областях, где присутствует родительский элемент. Даже когда оно расположено относительно окна браузера, то не будет отображаться, если его родительский элемент не виден. В CSS3 можно использовать более одного изображения для фона элемента. Код будет таким же, как CSS2, только адреса отдельных изображений нужно отделить запятой. Первое из них будет расположено в верхней части элемента, а последующие просто наслоятся на него.

Свойство background-size

Иногда для сайта нужно задать фон определенного размера. Атрибут , который для этого используется в HTML — background-size. У этого свойства существует ряд возможных значений:

  • -size: contain — масштабирует изображение таким образом, чтобы оно соответствовало элементу, сохраняя при этом пиксельное соотношение сторон;
  • -size: cover — разворачивает изображение для заливки элемента, сохраняя пропорции;
  • -size: 100px 100px — масштабирует изображение до указанных размеров;
  • -size: 50% 100% — масштабирует изображение до указанных размеров, проценты относятся к размеру содержащего элемента.

Размер background в HTML для Firefox до версии 4.0 задается нестандартным свойством -moz-background-size. Аналогично для Opera до версии 10.53 потребуется прописать -o-background-size.

Свойство background-origin

Свойство background-origin используется в сочетании с background-position для позиционирования фонового изображения. Применяется, если background-attachment задано как fixed. Его параметры можно отсчитывать от границ, отступов или содержимого элемента.

  • -origin: border-box; background — позиция рассчитывается от границы.
  • -origin: padding-box; background — позиция рассчитывается из поля заполнения.
  • -origin: content-box; background — позиция рассчитывается на основе содержимого элемента.

Варианты использования фонового изображения

Кроме очевидной декоративной пользы фона, его можно использовать и для других целей. Например, если в CSS добавить свойство float для смещения элементов, сложно гарантировать, что два или более столбца окажутся одинаковой ширины. Если они различны, то фон одного из столбцов будет оканчиваться раньше, чем фон другого. Избежать подобного эффекта можно, если использовать отдельный фон для каждого из столбцов. Но гораздо проще применить одно фоновое изображение к их родительскому элементу. Еще одно возможное применение — декорирование неупорядоченных списков. Буллиты в них могут выглядеть не слишком привлекательно, поэтому их лучше скрыть и заменить на фоновое изображение.

Шрифты вместо фона в HTML: background font

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

Новое свойство — background-break

В CSS3 появилось нововведение: элементы могут быть разделены на отдельные блоки, строки и страницы. Свойство background-break определяет то, как фон отображается в разных окнах.

Возможные значения:

  • -break: continuous — значение по умолчанию. Обрабатывает блоки, как будто между ними нет пространства;
  • -break: bounding-box — учитывает пространство между блоками;
  • -break: each-box — обрабатывает каждый блок в элементе отдельно и повторно рисует фон индивидуально для каждого из них.

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

fb.ru

Color, background-color и background-image

Давайте сначала посмотрим, как задается цвет Html элементов с помощью Css правила color. На самом деле тут все просто. Синтаксис совершенно обычный и цвет вы можете задавать в соответствии с тем, как это делали в языке гипертекстовой разметки. Как вы помните, цвета можно задавать с помощью шести цифр кода, поставленных после знака решетки (хеша — «#fe35a3»), либо с помощью трех цифр, если первая совпадает со значением второй, третья с четвертой, ну, а пятая, соответственно, с шестой (код цвета «#aa33ff» можно кратко записать как «a3f»).

Так же цвета в Html и Css коде можно будет представлять в виде слов (например, «red»), но чаще всего используется именно шестнадцатеричный код:

color:#303

Для примера я окрасил этот маленький абзац в тот цвет, который приведен выше (#303). Теперь он слегка отличается от цвета всех остальных абзацев (более темный), который задан как #555 в файле CSS используемой мною темы WordPress. Но задание цвета через color это довольно просто, а вот с фоном будет немного посложнее.

Итак, за фон в Css отвечают пять правил, которые при желании могут быть объединены в одно сборное. Чтобы их увидеть, можете перейти на страницу текущей спецификации консорциума W3C и поискать там что-нибудь со словом Background:

Background url

  1. background color — с помощью этого правила задается цвет фона для любого Html элемента. В нем можно использовать либо код, либо название оттенка, т.е. все в точности так, как и было при использовании color.
  2. background image — с помощью него можно в качестве фона использовать картинку (но обязательно прочитайте про то, как уменьшить вес фотографии, ибо тяжелые картинки будут тормозить загрузку страниц), путь до которой будет указан в функционале url ().

    Путь можно указывать в Url как относительный, так и абсолютный. Использование фоновой картинки вовсе не запрещает вам одновременно использовать заливку цветом с помощью background-color. Эти CSS правила не являются взаимоисключающими.

  3. background repeat — можно задать повторение картинки фона либо только по горизонтали в один ряд, либо только по вертикали, либо вообще запретить ее повторение.
  4. background position — позволяет точно задать позицию этого изображения как в процентах, так и в абсолютных величинах
  5. background attachment — позволяет выбрать тип привязки точки отсчета при позиционировании изображения для фона: либо относительно конкретного Html элемента, либо относительно области просмотра (видимой на экране компьютера области веб страницы).

Начнем с правила background-color — оно позволяет задать цвет фона для любого Html элемента, которому это правило будет адресовано с помощью селекторов в файле стилей (ну, или в котором оно может быть прописано с помощью атрибута Style).

Background url

Если вы заглянете в спецификацию, то увидите, что по умолчанию цвет фона в любом элементе будет прозрачный (значение по умолчанию правила «background-color:transparent»). Правда, в элементах форм (select, input) он по умолчанию будет не прозрачным, т.к. это системные элементы и у них все по другому и отличается от обычных тегов языка гипертекстовой разметки.

Цвет в background-color задается стандартно (шесть или три цифры шестнадцатеричного кода, либо слово):

background-color:#FEFCDE

Например, фон этого абзаца задан именно через background-color с приведенным чуть выше кодом цвета.

Все остальные четыре CSS правила будут касаться только фоновой картинки, которую можно задать для любого Html элемента и, при желании, точно ее позиционировать. Какой именно графический файл будет использоваться, можно задать с помощью background-image.

Background url

Если вы посмотрите в спецификацию языка стилевой разметки, то увидите, что для background-image по умолчанию используется значение «none» (т.е. никакого изображения для фона не используется). Ну, а если это все-таки нужно, то в функционале url () вам потребуется указать до него путь:

background-image:url(https://ktonanovenkogo.ru/image/comment_top_focus.gif);

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

Background url

Т.е. при использовании только одного правила background-image с указанием пути до графического файла, это самое изображение будет размножено как по вертикали, так и по горизонтали до тех пор, пока не покроет собой всю область отводимую на веб странице под данный конкретный Html элемент (в нашем примере это был абзац). Почему так происходит?

Background-repeat — повтор фоновой картинки

Да потому, что мы не прописали никакого значения для CSS правила background-repeat, а значит для него будет использоваться то значение, которое принято по умолчанию. Заглянув в спецификацию мы узнаем, что это значение соответствует «repeat» (повтор изображения по всем осям). Ответ нашелся сам собой.

Background url

Следовательно, с помощью background-repeat мы сможем управлять повторениями фоновой картинки. У этого правила может быть только четыре значения:

  1. repeat — задает повтор картинки как по оси абсцисс (ось X, если еще не забыли школьный курс алгебры), так и по оси ординат (ось Y). Используется по умолчанию и указывать его специально в правиле не нужно
  2. repeat-x — она будет повторяться только по горизонтали и получится в результате только одна строка с повторами. Не забудьте, что правило background-repeat не будет работать, если вы не задали в background-image путь до фоновой картинки:
    background-image:url(https://ktonanovenkogo.ru/image/rss_no_drop1.png); background-repeat:repeat-x;

    Background url

  3. repeat-y — будет повторяться только по вертикали (получится один столбец из повторов):
    Background url
  4. no-repeat — вообще не будет повторяться и мы получим одно единственное изображение в левом верхнем углу области того Html элемента, для которого оно используется:
    Background url

Background-position — позиционирование фона

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

Background url

Посмотрев на спецификацию CSS становится ясно, почему фоновая картинка по умолчанию прижимается именно к верхнему левому краю области Html элемента. Потому что значение «0% 0%» является умолчательным для правила background position.

Ну, а когда это правило в явном виде для элемента не задано (как в нашем случае), то браузер выбирает то его значение, которое принято в спецификации по умолчанию (замечу, что отчет осей координат в CSS ведется как раз от верхнего левого края области элемента).

Так же из спецификации видно, что для позиционирования изображения фона с помощью background-position можно использовать как относительные (проценты), так и абсолютные величины (например, пиксели или другие единицы размеров применимые в CSS). Ну, а так же можно использовать слова, которые будут соответствовать определенным цифровым значениям. Но обо все по порядку.

При задании позиционирования изображения фона с использованием абсолютных единиц в background-position имеет место быть следующий принцип определения его итогового положения:

Background url<

Т.е. браузер будет рассчитывать заданные отступы по осям X и Y от начала координат области, в которой позиционируется объект, до начала координат этого самого изображения. Например, в этом абзаце я позиционировал фоновое изображение через background position с помощью следующих CSS правил:

background-image:url(https://ktonanovenkogo.ru/image/logo.png); background-repeat:no-repeat; background-position:400px 25px;

Т.е. значок счетчика Ливинтернет отстоит на 400 пикселов по горизонтали от левого края абзаца и на 25 пикселей по вертикали вниз от его верхнего края.

Позиционирование фоновой картинки с помощью background-position в процентах несколько отличается от описанного выше:

Background url

С точки зрения измерения отступов от точки начала отсчета Html элемента, для которого мы позиционируем, изменений никаких нет, разве только отступы рассчитываются в процентах. Но зато есть изменения в той точке на фоновой картинке, относительно которой мы его сдвигаем.

Позиция этой точки на ней теперь тоже определяется тем соотношением, которое задано в CSS правиле background-position (в нашем примере это 60 процентов от левой стороны и 40 процентов от верхнего края):

Background url

Проценты очень удобны для позиционирования, например, по центру (50% по осям X и Y) или правому краю (100% по оси X). Ведь размеры области элемента могут изменяться в зависимости от ширины области просмотра, а при использовании процентов будет изменяться и положение фонового изображения, чтобы всегда находиться либо по центру, либо по правому краю. Сделать это с помощью абсолютных единиц у вас не получится.

Можно использовать так же в background-position и комбинацию абсолютных и относительных единиц, как например, здесь:

Background url

Например, если вам нужно будет прижать картинку фона к правому краю абзаца, а сверху задать фиксированный отступ, то вполне подойдет такое CSS правило (пример смотрите в этом же абзаце):

background-image:url(https://ktonanovenkogo.ru/image/logo.png); background-repeat:no-repeat; background-position:100% 25px;

Т.о. осуществилось выравнивание по правому краю (правая граница фонового изображения встала вплотную к правой границе области отведенной под абзац).

В правиле с position можно также использовать слова и комбинации двух слов, которые будут определять крайние позиции. Использовать можно слова left, center, right, top, bottom, а так же их комбинации и абсолютных, и относительных цифровых значений.

Например, вот так можно задать крайние положения в позиционировании фонового изображения с помощью слов (рядом приведены цифровые аналоги, чтобы было понятнее):

Background url

Причем, можно писать как «left top», так и «top left», ибо сути это не меняет:

  1. Left в комбинации означает ноль по оси абсцисс
  2. Right — 100% по оси абсцисс
  3. Top — ноль по оси ординат
  4. Bottom — 100% по оси ординат
  5. Center — 50% по обоим осям

Одиночные записи left, right, top, bottom, center подразумевают, что с ними в паре должно стоять center (или 50%), т.е. выравнивание осуществляется по центру левого, правого, верхнего, нижнего края или по центру всей области, отведенной для Html элемента, соответственно.

Хотя слова в background-position и кажутся более понятными, но на практике проще и понятнее будет использовать цифры (абсолютные или относительные — не суть важно), ибо первая цифра это всегда X, а вторая — Y. Слова же могут стоять в разной последовательности.

Что примечательно, если в этом расчудесном CSS правиле написать только одно значение, то второе будет заменено по умолчанию на 50% (середина по вертикали).

ktonanovenkogo.ru

Фоновая картинка.

background | background-image

Если вы хотите добавить фоновую картинку на веб-страницу, воспользуйтесь стилевым свойством background, который задается к селектору body.  Задайте путь к изображению внутри значения url.

<style> body { background: url(путь к файлу); } </style>

или

<style> body { background-image: url(путь к файлу); } </style>

Как выбрать графический путь? Графический путь будет зависеть от того, где он располагается.
Например, если HTML-файл и фоновый рисунок с именем bg.gif хранятся в одной папке, то достаточно задать url(bg.gif), если фоновый рисунок хранится в папке images, тогда путь будет вот таким url(images/bg.gif).

Совет: учтите, фоновое изображение загружается не сразу, поэтому рекомендую добавлять к фоновому изображению цвет фона, так как цвет загружается моментально. Задайте цвет фону близкий к цвету фонового рисунка.

Пример:

    <html>   <head>   <title>Фон в CSS</title>   <style>   body {   background: #000000 url(images/bg.gif); /* Цвет фона и путь к графическому файлу */   }   </style>   </head>   <body>   <p>Ваш текст</p>   </body>  </html>    

или

  <html>   <head>   <title>Фон в CSS</title>   <style>   body  {  background-image: url(images/bg.gif); /* Путь к графическому файлу */  background-color:#000000; /* Цвет фона */  }   </style>   </head>   <body>   <p>Ваш текст</p>   </body>  </html>  

Повтор фоновой картинки.

background-repeat

Бывают моменты, когда нам необходимо управлять повторами фонового изображения. Например, нам выгодно, чтобы повтор фонового изображения был только по горизонтали или только по вертикали,  а бывает момент, что повтор фонового изображения нам вообще не нужен. Итак, как нам выкрутиться в этой ситуации? Воспользуйтесь стилевым свойством background-repeat.

background-repeat: repeat-y | repeat-x | no-repeat;

Значения:

repeat-y — повтор фонового изображения по оси — у (вертикаль);
repeat-x — повтор фонового изображения по оси — х ( горизонталь);
no-repeat; — запретить повтор фонового изображения (изображение будет как оно есть);

Если не задать стилевое свойство background-repeat, тогда фоновое изображение веб-страницы будет залито полностью фоновой картинкой.

Пример:

  <html>   <head>   <title>Фон в CSS</title>   <style>   body  {  background-image: url(images/bg.gif); /* Путь к графическому файлу */  background-color:#000000; /* Цвет фона */  background-repeat: repeat-x; /* фон будет повторятся по оси-х (горизонтали) */  }   </style>   </head>   <body>   <p>Ваш текст</p>   </body>  </html>  

или

  <html>   <head>   <title>Фон в CSS</title>   <style>   body {   background: #000000 url(images/bg.gif) repeat-x; /* Цвет фона, путь к графическому файлу и повтор фона по оси-х (горизонтали)*/   }   </style>   </head>   <body>   <p>Ваш текст</p>   </body>  </html>  

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

background

Бываю такие моменты, когда нам необходимо создать два фона для сайта. Например, один фон повторяется по вертикали или по горизонтали, а второй фон выводится без повторения.
Добавим две фоновые картинки старым добрым способом. По крайне мере я знаю точно, все браузеры отображают этот метод.
Зададим фоновое изображение к элементам — HTML и BODY.

  <style type="text/css">  HTML { background: url(картинка 1); /* Путь к графическому файлу с первым фоном */ }  BODY { background: url(картинка 2) no-repeat top center; /* Путь к графическому файлу со вторым фоном */ }  </style>  

Пример:

  <html>  <head>  <title>Фон в CSS</title>  <style>  HTML  {  background: url(картинка-1) no-repeat bottom; /* Путь к графическому файлу с первым фоном, запрет на повтор картинки, прижать к низу части экрана */  }  BODY  {  background: url(картинка-2) no-repeat top center; /* Путь к графическому файлу со вторым фоном, запрет на повтор картинки, прижать к верху по центру */  }  </style>  </head>  <body>  <p>Контент сайта</p>  </body>  </html>  

Результат:

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

Картинка по центру.

Существуют несколько методов установить картинку по центру.

Примеры:

метод 1:

  <html>  <head>  <style>  BODY  {  background: url(картинка.gif) no-repeat center; /* Путь к графическому файлу, запрет на повтор картинки и разместить по центру */  }  </style>  </head>  <body>  <p>Контент сайта</p>  </body>  </html>  

метод 2:

  <html>  <head>  <style>  .imgCenter {text-align:center;}  </style>  </head>  <body>  <p>Текст параграфа.</p>  <div class="imgCenter">  <img src="картинка.gif" border="0" width="300" height="300" alt="" />  </div>  <p>Далее по тексту параграфа.</p>  </body>  </html>  

метод 3:

  <html>  <head>  <style>  .center {display:block; margin:0 auto;}  </style>  </head>  <body>  <p>Текст параграфа.</p>  <p>Текст параграфа.  <img class="center" src="картинка.gif" border="0" width="300" height="300" alt="" />  Далее по тексту параграфа.</p>  </body>  </html>  

Как в css изменить размер картинки.

background-size

Не зависимо от оригинала картинки, размер можно менять от меньшего до большего. В CSS для изменения размера картинки поможет свойство background-size.
В свойстве background-size могут применяться абсолютные единицы измерения, такие как px, em, cm и др..

background-size: ширина высота;

По умолчанию ширина и высота установлена как auto, что оставляет исходные размеры изображения.

Например, вы загрузили на сайт картинку размерами 200×200 px, но вам по каким-то причинам нужно ее увеличить до размера 500×200 px . Вот так будут выглядеть параметры background-siz.

background-size: 500px 200px;

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

можно так:

background-size: 200px;

а можно вот так:

background-size: 200px auto;

Пример:

  <html>  <head>  <style>  body  {   background:url(картинка.jpg);   background-size:500px 200px;   background-repeat:no-repeat;  }  </style>  </head>  <body>  <p>текст сайта</p>  </body>  </html>  

Обтекание (выравнивание) картинки текстом.

float

Как сделать в CSS так, чтобы на странице изображение обтекало текстом? Выравнивание картинки в CSS аналог HTML-выравнивания картинки <IMG align=”right” …>, вот только в CSS по какой стороне будет выравнивание элементов определяет float.

float: left | right | none;

 Значение:

left — выровнять картинку по левому краю, текст обтекает его по правой стороне.

right — выровнять картинку по правому краю, текст обтекает по левой стороне.

none — выравнивание и обтекание не задается (значение по умолчанию).

Пример:

  <html>   <head>   <title>Обтекание</title>   <style>   .leftimg {   float:left; /* Выравнивание по левому краю */   margin: 5px 5px 5px 0; /* Отступы вокруг картинки */   }   .rightimg {   float: right; /* Выравнивание по правому краю */   margin: 5px 0 5px 5px; /* Отступы вокруг картинки */   }   </style>   </head>   <body>   <h2>Основы CSS</h2>   <p><img src="images/1.jpg" class="leftimg">   Приветствую всех читателей и случайных посетителей моего блога.   Сегодня я бы хотел вам рассказать о незаменимом инструменте веб-дизайнера - CSS.   CSS (Cascading Style Sheets) – это каскадные таблицы стилей, которые хранят в   себе правила для группы или одиночного элемента. CSS используют для изменения  внешнего вида дизайна сайта (цвет, размер текста, фон и др.).</p>   <h2>Основы CSS</h2>   <p><img src="images/2.jpg" class="rightimg">   Давайте перейдем к основам CSS.CSS файл имеет расширение *.css.   Часто веб-мастера присваивают CSS файлу имя style (style.css).   CSS файл тесно связан с HTML. Другими словами, это можно объяснить   так: CSS без HTML работать не будет.   Предлагаю для общего понимания рассмотреть пример, как можно объединить   HTML с CSS файлом.</p>   </body>  </html>  

Здесь я указал отступы текста от картинки

margin: 5px 0 5px 5px;

Результат:

Обтекание (выравнивание) картинки текстом.

Тень картинки.

box-shadow

Небольшая тень под картинкой придает также странице эффект трехмерности, объёма и глубины. Для добавления тени используется свойство box-shadow.

Тень картинки

1. —  inset —  тень внутри элемента, без inset тень будет наружу;
2. — сдвиг тени по горизонтали (6px — вправо, -6px — влево);
3. — сдвиг по вертикали (6px — вниз, -6px — вверх);
4. — размытие тени (0 — четкая тень);
5. — растяжение тени (3px — растяжение, -3px — сжатие);
6. — цвет тени

box-shadow: 0 0 5px; — тень вокруг элемента

тень вокруг элемента

box-shadow: inset 0 0 5px; — тень внутри

тень внутри

Пример:

  <html>   <head>   <title>Изображение</title>   <style>   img {   box-shadow: -19px 0 22px -19px #000, 19px 0 22px -19px #000;   }   </style>   </head>   <body>   <p><img src="картинка.jpg" alt=""></p>   </body>  </html>  

Результат:

Тень картинки

Прозрачность картинки.

Начну сразу с примера.

Пример:

  <html>  <head>  </head>  <body>  <p>Обычное изображение:</p>  <img src="картинка.png" width="300" height="200" />  <p>изображение с прозрачностью:</p>  <img src="картинка.png" width="300" height="200"  style="opacity:0.4;filter:alpha(opacity=40)" />  </body>  </html>  

Обратите внимание в коде на opacity:0.4. Поиграйтесь со значением этого свойства и вы увидите на сколько увеличивается или уменьшается прозрачность картинки.

Результат:

Прозрачность картинки

С наилучшими пожеланиями Webmasterok2009

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

bloggood.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.