Pull to refresh

Правильная прозрачность

Reading time2 min
Views86K
dfsdfs

Однажды мне понадобилось сделать прозрачные боковые поля для одного дизайна. Я решил использовать прозрачность CSS.

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

Недавно я наткнулся на замечательную технику, позволяющую устранить эту проблему, ею я и хочу с вами любезно поделиться.


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

Вот так выглядит наш блок:
<div id=«container»>

<h1>Привет, я прозрачный блок</h1>

Текст внутри блока. Текст внутри блока. Текст внутри блока.

</div>


Теперь добавим прозрачную подложку:
<div id=«container»>

<div class=«transparency»>
<!-- Это прозрачный блок-->
</div>

<div class=«content»>
<h1>Привет, я прозрачный блок</h1>
Текст внутри блока. Текст внутри блока. Текст внутри блока.
</div>
</div>


Теперь перейдем к оформлению css:
#container {
padding:20px;
width:300px;
color:#FFFFFF;
position:relative;
float:left;
margin-left:20px;
overflow:hidden;
}

#container .transparency {
  opacity:0.5;
  filter:alpha(opacity=50);
  -moz-opacity:0.5;
background-color:#000000;
width:340px;
height:1500px;
position:absolute;
  top:0px;
  left:0px;
z-index:-1;


.content {
position:relative;


Готово! Теперь все элементы внутри блока не изменят свою прозрачность. Для полного счастья, я решил написать небольшой скрипт на jQuery, который всё автоматизирует.

Вам будет достаточно лишь добавить класс transp к вашему блоку:
<div id=«container» class=«transp»>

<h1>Привет, я прозрачный блок</h1>

Текст внутри блока. Текст внутри блока. Текст внутри блока.

</div>


И конечно, сам jQuery код:
$(document).ready(function() {
$(".transp").wrapInner('<div>').children().addClass(«content»);
$(".transp .content").before('<div>').prev().addClass(«transparency»);
});

На мастера jQuery я, конечно, не претендую, но это работает!

Посмотреть демо
Скачать демо

Подписаться на заметки от Чернева
Tags:
Hubs:
+3
Comments56

Articles

Change theme settings