Один из способов применять opacity
Посмотрим, как свойство opacity
Прозрачность на кликабельных картинках
На рис. 3.16
показан футер сайта-примера, в котором – после некоторого юридического текста и шокирующего дисклеймера – расположились три логотипа, на них можно нажать.Рис. 3.16.
Футер сайта Вещи, оставленные на ЛунеВоспользуемся свойством opacity
:hover
и :focus
, но и чтобы задать начальный уровень прозрачности. CSS-переход сгладит и анимирует это изменение, чтобы довершить эффект.Разметка
Как и в предыдущем примере с навигацией, разметка для логотипов в футере проста и семантична – ненумерованный список, состоящий из картинок-ссылок:
Прозрачность и эффективность картинки
Я создал иконки полностью белыми PNG-изображениями, зная, что затем применю свойство opacity
Вместо того чтобы сохранять полупрозрачные PNG, я сохраняю полностью непрозрачные версии (рис. 3.17
), которые могу менять в браузере. Кроме того что такой подход экономит время, он также позволяет выставлять разные уровни прозрачности в состояниях:hover
, :focus
и :active
, избавляя от необходимости создавать несколько наборов изображений.Рис. 3.17.
PNG-файлы с логотипами – полностью белыеОформление списка
Первые фрагменты оформления отцентрируют картинки в футере и поместят их горизонтально (рис. 3.18
):Рис. 3.18.
Белые PNG, отцентрированные в футере#footer-logos {
text-align: center;
}
#footer-logos li {
display: inline;
}
Теперь выставим такие значения свойства opacity
:hover
и:focus
.#footer-logos a img {
opacity: 0.25;
}
#footer-logos a: hover img,
#footer-logos a: focus img {
opacity: 0.6;
}
Мы выставили картинкам непрозрачность в 25%; при наведении или получении фокуса непрозрачность поднимается до 60% (рис. 3.19
). Крайне просто, не так ли? И для такого эффекта нужен лишь один набор картинок.Заметим, что свойство opacity
opacity
, но существует хакерское решение для тех, кто не прочь окунуться в дебри проприетарности.opacity: хак для IE
К счастью, opacity
filter
от Microsoft.Обычно я бы не стал предлагать использовать свойство filter
filter
может повлечь за собой существенные проблемы производительности в зависимости от того, где и как часто оно используется. Это хак – но он решает проблему.При условии, что вышесказанное понятно, и выделяя это свойство в отдельный стилевой файл или иначе аккуратно комментируя его, filter
Вот как он работает:
#footer-logos a img {
border: none;
opacity: 0.25;
-ms-filter: "progid: DXImageTransform.Microsoft.
Alpha(Opacity=25)";
filter: alpha(opacity = 25);
}
#footer-logos a: hover img,
#footer-logos a: focus img {
opacity: 0.6;
-ms-filter: "progid: DXImageTransform.Microsoft.
Alpha(Opacity=60)";
filter: alpha(opacity = 60);
}