Internet Explorer и CSS-свойство opacity
Не буду сегодня зубы вам заговаривать сказками, а сразу покажу картинку с сайта htmlbook.ru:
Хоп-хэй, на-на-нэй, вот вопрос — и вот тебе ответ: opacity (свойство прозрачности из CSS 3) поддрердивается любимцем публики Интернет Испортилом только с версии 9.0.
А обожаемый мною Яндекс на картинке справа чётко даёт понять даже дальтоникам, что IE 9 для Windows XP в природе не существует. И любителям уходящих в историю Окошек придётся всё чаще любоваться сплошной заливкой там, где подразумевалась прозрачность. Но я же Pavluha.Net, потому не всё так грустно. Глядим под cut...
Вот такой код:
<!DOCTYPE html> <html dir="ltr" lang="ru-RU"> <head> <meta charset="UTF-8" /> <title>Opacity</title> <style> div { background: url('fon.jpg'); padding: 40px; } div div { background: #000; font: 40px Calibri; white-space: pre; color: #fff; opacity: .75; } </style> </head> <body> <div><div> В лунном сиянии Снег серебрится Вдоль по дороге Троечка мчится Динь-динь-динь... </div></div> </body> </html>
Это попытка заставить IE 8, бессмысленный и беспощадный, воспринять CSS-свойство Opacity. Попытка заведомо обречена на провал, но надо же было убедиться:
Чёрный блок с текстом должен был получиться на 25% прозрачным. С помощью CSS 3 это сделать в IE 8 не удалось. Но ведь для прозрачности в IE можно использовать фильтры... На что я буду закрывать уши, топать ногами и кричать: «Не хочу, не хочу!»
А теперь немного изменим код, подключив библиотеку jQuery, которая на многих сайтах и так уже используется (любит народ наш всякий там AJAX).
<!DOCTYPE html> <html dir="ltr" lang="ru-RU"> <head> <meta charset="UTF-8" /> <title>Opacity</title> <style> div { background: url('fon.jpg'); padding: 40px; } div div { background: #000; font: 40px Calibri; white-space: pre; color: #fff; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script>$(function() { $('div div').css({opacity: .75}) })</script> </head> <body> <div><div> В лунном сиянии Снег серебрится Вдоль по дороге Троечка мчится Динь-динь-динь... </div></div> </body> </html>
Магия заключена в строках 18-19. Смотрим результат:
Свершилось чудо! jQuery спас жизнь IE 8!
Кстати, эксперимент был проведён с именно с IE 8 и jQuery, поскольку именно так я заметил эту фишку. Буду благодарен, если вы поэкспериментируете с более ранними версиями Internet Explorer, а также JavaScript-ом без подключения библиотеки jQuery. А то я и так уже за компом приторчал.
Кстати, IE я использую не только для проверки кроссбраузерности, но также для поиска косяков в своих JS. Другие браузеры просто пропускают тот кусок кода, который им не нравится, IE же вываливает ошибку с описанием, в какой букве кода что-то пошло не так. А для постоянного использования рекомендую Firefox.
7 ответов к “Internet Explorer и CSS-свойство opacity”
Мужик! Вообще, jQuery на практике очень сильно выручает. Вот еще один наглядный пример.
Когда уже на Пхонемаркет что-нибудь новое напишешь? Или тоже продашь его?
😀 Нет, не продам. Сегодня напишу
Написал
Нафига писать код, подразумевая что люди им воспользуются и при этом отключить возможность его копирования? Попытка повысить собственную самооценку? неудачный способ)
Всё прекрасно копируется: двойной клик по коду, Ctrl+C. Сам не поддерживаю такие методы защиты. ИМХО, лучший способ защитить текст от копирования — не публиковать его.
и вот тебе инфы немного) не работает с png в ИЕ, а в хроме норм