Прозрачность с помощью CSS
Иногда возникает необходимость сделать прозрачный фон для определённого блока на странице. Добиться данного эффекта можно созданием прозрачного фонового рисунка в формате *.png и установив его через свойство background: url(“./images/fon.png”);.
Используем свойство OPACITY
Зачем такие сложности, если это можно сделать с помощью CSS. Давайте создадим на странице основной блок(page) и вложенный блок(block), которому зададим прозрачность. Кроссбраузерность достигается следующим образом: свойство для Internet Explorer – filter:alpha(opacity=50) (значение прозрачности в диапазоне от 0 до 100), для браузеров с поддержкой CSS3 стандарта – opacity:0.5 (число в диапазоне от 0.0 до 1.0).
HTML код:
<html> <head> <title>Полупрозрачный элемент</title> <style type="text/css"> div.page { margin:0 auto; width:450px; height:300px; background:url(../images/3a0fdf3dc1.jpg) no-repeat; border:2px solid #555555 } div.block { width:260px; height:140px; margin-top:79px; margin-left:94px; background-color:#ffffff; border:1px solid #333333; /* Internet Explorer */ filter:alpha(opacity=50); /* CSS3 стандарт */ opacity:0.5 } div.block p { margin:47px 0 0 10px; font-weight:bold; color:#000000; text-align: center; } </style> </head> <body> <div class="page"> <div class="block"> <p>Прозрачный фон для блока.</p> </div> </div> </body> </html>
Результат:
Прозрачный фон для блока
Как Вы заметили, прозрачность распространяется на все дочерние элементы <p>Прозрачный фон для блока</p> в DIV с классом block и они не могут превысить значение прозрачности своего родителя. Т.е., всё что находится в данном блоке становится прозрачным. Что делать, если надо оставить прозрачный фон только у дива?
Используем свойство BACKGROUND-COLOR
Нам необходимо внести некоторые изменения в таблицу стилей CSS, а именно заменить для блока DIV с классом block свойство opacity на свойство background-color.
div.block { width:260px; height:140px; margin-top:79px; margin-left:94px; border:1px solid #333333; /* прозрачный фон только DIV.block */ background-color: rgba(255, 255, 255, 0.5); /* Цвет фона, прозрачность 0.5*/ }
Результат:
Прозрачный фон для блока
В выше приведённом примере используется для цвета и фона формат RGBA. Где, первые три буквы расшифровываются как red, green, blue (красный, зеленый, синий), последняя символизирует собой альфа-канал (a) и задает прозрачность элемента от 0.0 до 1.0.
background-color: rgba(r, g, b, a);
В скобках вместо букв ставится значение компонента цвета, его можно посмотреть в любом графическом редакторе, например Paint.Net (скриншот). Последнее же значение a устанавливает прозрачность и совпадает со значением свойства opacity.
http://cp77.comxa.com/verstka/css-transparent-fon