Один из способов применять opacity, который нравится мне, – создавать простое и гибкое состояние: hover для графических ссылок, пользуясь изменением прозрачности для создания нескольких состояний из одного изображения. Прибавим к этому CSS-переход и получим прекрасное, яркое, легко поддерживаемое взаимодействие для графических ссылок на странице.

Посмотрим, как свойство opacity применяется в примере с Луной.

<p>Прозрачность на кликабельных картинках</p>

На рис. 3.16 показан футер сайта-примера, в котором – после некоторого юридического текста и шокирующего дисклеймера – расположились три логотипа, на них можно нажать.

Рис. 3.16. Футер сайта Вещи, оставленные на Луне

Воспользуемся свойством opacity не только для того, чтобы определить состояния :hover и :focus, но и чтобы задать начальный уровень прозрачности. CSS-переход сгладит и анимирует это изменение, чтобы довершить эффект.

<p>Разметка</p>

Как и в предыдущем примере с навигацией, разметка для логотипов в футере проста и семантична – ненумерованный список, состоящий из картинок-ссылок:

  • alt="SimpleBits logo" />
  • alt="RSS feed" />
  • alt="BitMan" />
  • <p>Прозрачность и эффективность картинки</p>

    Я создал иконки полностью белыми PNG-изображениями, зная, что затем применю свойство opacity, чтобы отрегулировать прозрачность на уровне CSS. Такой подход изменил то, как я в некоторых ситуациях думаю о графических объектах в веб-проектах.

    Вместо того чтобы сохранять полупрозрачные PNG, я сохраняю полностью непрозрачные версии (рис. 3.17), которые могу менять в браузере. Кроме того что такой подход экономит время, он также позволяет выставлять разные уровни прозрачности в состояниях :hover, :focus и :active, избавляя от необходимости создавать несколько наборов изображений.

    Рис. 3.17. PNG-файлы с логотипами – полностью белые

    <p>Оформление списка</p>

    Первые фрагменты оформления отцентрируют картинки в футере и поместят их горизонтально (рис. 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 не требует браузерного префикса и работает в Safari, Chrome, Firefox и Opera. IE8 и ниже не поддерживает opacity, но существует хакерское решение для тех, кто не прочь окунуться в дебри проприетарности.

    <p>opacity: хак для IE</p>

    К счастью, opacity поддерживается в Internet Explorer 9 Beta, но мы также можем сымитировать тот же результат в ранних версиях IE, воспользовавшись проприетарным свойством filter от Microsoft.

    Обычно я бы не стал предлагать использовать свойство filter, потому что (в отличие от свойств с браузерными префиксами) оно не входит ни в один предложенный стандарт. Также использование filter может повлечь за собой существенные проблемы производительности в зависимости от того, где и как часто оно используется. Это хак – но он решает проблему.

    При условии, что вышесказанное понятно, и выделяя это свойство в отдельный стилевой файл или иначе аккуратно комментируя его, filter можно воспринимать как приемлемый метод.

    Вот как он работает:

    #footer-logos a img { 

    border: none;

    opacity: 0.25;

    -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=25)"; /* IE 8 hack */

    filter: alpha(opacity = 25);/* IE 5–7 hack */

    }

    #footer-logos a: hover img,

    #footer-logos a: focus img {

    opacity: 0.6;

    -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=60)"; /* IE 8 hack */

    filter: alpha(opacity = 60);/* IE 5–7 hack */

    }

    Перейти на страницу:

    Все книги серии Актуальные книги для тех, кто создает сайты

    Похожие книги