Прозрачность с помощью 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

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

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

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