Кросс-браузерная прозрачность блока

Прозрачность не является одним из часто используемых свойств, но когда она нужна, то хотелось бы иметь легкий способ для ее имплементирования, а не возиться с прозрачными PNG или GIF‘ами. И такой способ есть.

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

И так, стили:

#transparent {
opacity: 0.6; // - поддерживается Firefox'ом и Оперой (CSS3 spec)
-moz-opacity: 0.6; // - для поддержки Firefox ниже 1.5 версии и Мозиллы
filter: alpha(opacity=60); - Internet Explorer
}

*Значение opacity для Интернет Эксплорера описывается в целых величинах, т.е 0.6 = 60.

Для сохранения валидности документа советую вынести вторую и третью строку в отдельные CSS-файлы через Conditional Comments. Или использовать следующий метод: А именно Javascript:

var oe = document.getElementById(‘transparent’);
oe.setAttribute(“style”, “opacity:0.6;”)
if (oe.style.setAttribute) //Для IE    oe.style.setAttribute(“filter”, “alpha(opacity=60);”)

*Предостережение: Дочерние элементы блока с заданой прозрачностью наследуют свойство, которое нельзя отменить, задав стиль для дочернего элемента. В следствие этого, если вы используете полупрозрачный блок, как контейнер для текста, позаботьтесь о том чтобы текст был читабельным, и opacity была в пределах 0.7 – 0.8.

This entry was posted in CSS. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

8 Responses to Кросс-браузерная прозрачность блока

  1. Прохожий says:

    [quote post="45"]советую вынести вторую и третью строку в отдельные CSS-файлы через Conditional Comments[/quote]
    А можно полюбопытствовать, как должны выглядеть условные комментарии для FF и прочих Мозилл (вторая строчка css-кода)?

  2. neutrino says:

    [quote post="45"]А можно полюбопытствовать, как должны выглядеть условные комментарии для FF и прочих Мозилл (вторая строчка css-кода)?[/quote]

    Не совсем понял о чем речь. Условные комментарии есть только для IE. Или вы про CSS-хаки?

  3. Прохожий says:

    [quote comment="852"]Не совсем понял о чем речь. [/quote]
    Речь о том, что в статье ошибка. Сделать код валидным, используя условные комментарии, и сохранив при этом его работоспособность, для этой строки не получится

    [quote post="45"]-moz-opacity: 0.6; // – для поддержки Firefox ниже 1.5 версии и Мозиллы
    [/quote]

  4. neutrino says:

    [quote post="45"]Речь о том, что в статье ошибка. Сделать код валидным, используя условные комментарии, и сохранив при этом его работоспособность, для этой строки не получится[/quote]

    Согласен, сглупил. Хм, надо подумать.

  5. Costic says:

    Чтобы сделать валидным код с помощью условных коментов нужно делать а-ля так (нужные условия сам подствь):

    <!–[if IE]>@import(ie_only.css)<[endif]–>
    <!–[if !IE]–>@import(non_ie.css)<!–[endif]–>

    Обрати внимание, что условие в первой строчке формирует валидный комментарий содержащий команду ИЕ, и только ИЕ его обработает как содержимое, остальные сочтут коментом.
    Во второй строке, напротив – текст обрамлен валидными коментами, а сам текст должен отрабатываться всеми браузерами, но ИЕ увидев команды пропустит его.
    Код – рабочий и рекомендованный самим M$-ом. (ищи на M$DN’е “условные комментарии”).

  6. Costic says:

    ЭЭЭ, в предыдущем коменте, в примере кода почему-то пропали двойные дефисы разметки коментов, автору блога – незачет. Для тех кто в танке, приведу код еще раз – с учетом пропавших дефисов:

    <!—-[if IE]>@import(ie_only.css)<[endif]—->
    <!—-[if !IE]—->@import(non_ie.css)<!—-[endif]—->

  7. verstun says:

    Вот еще один очень удобный способ с использованим jquery

    $(function(){
    $(‘img’).css(‘opacity’, ‘0.3′)
    });

  8. Камил says:

    Нужно разяснение что такое Conditional Comments и как вынести в отдельные css? В настоящий момент у меня реализовано так, код валиден, но валидность CSS с ошибками.

    Не могу побороть проблему, прозрачность другим способом решить не могу. (счётчики и поиск)

Leave a Reply

Your email is never published nor shared. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>