Например, можно наложить переход на состояния :focus
и :active
. Нам не придется добавлять объявление перехода в описание каждого свойства, так как параметры перехода указываются лишь один раз – для основного состояния элемента.
Следующий пример добавляет точно такое же переключение фона для состояния :focus
.
Таким образом, переход произойдет либо от того, что на ссылку наведут курсор, либо от того, что на нее будет наведен фокус (например, клавиатурой).
a.foo {
padding: 5px 10px;
background: #9c3;
-webkit-transition: background 0.3s ease;
-moz-transition: background 0.3s ease;
-o-transition: background 0.3s ease;
transition: background 0.3s ease;
}
a.foo: hover,
a.foo: focus{
background: #690;
}
Переход нескольких свойств
Предположим, что кроме цвета фона хочется также менять цвет самой ссылки и накладывать переход на это изменение. Такого эффекта можно достичь, перечисляя одновременно несколько переходов и разделяя их запятой. На каждый переход можно навесить отдельную продолжительность и собственную временную функцию ( рис. 2.03). (Продолжение строки отмечено символом»).
Рис. 2.03.Обычное состояние ссылки и состояние: hover
a.foo {
padding: 5px 10px;
background: #9c3;
-webkit-transition: background.3s ease,
color 0.2s linear;
-moz-transition: background.3s ease,
color 0.2s linear;
-o-transition: background.3s ease, color 0.2s linear;
transition: background.3s ease, color 0.2s linear;
}
a.foo: hover,
a.foo: focus {
color: #030;
background: #690;
}
Переход всех возможных состояний
Вместо того чтобы перечислять несколько свойств, к которым хочется применить переход, можно использовать значение all
. Тогда переход будет наложен на все возможные свойства.
Заменим перечисление background
и color
на значение all
. Теперь эти переходы получат одинаковую продолжительность и временную функцию.
a.foo {
padding: 5px 10px;
background: #9c3;
-webkit-transition: all0.3s ease;
-moz-transition: all0.3s ease;
-o-transition: all0.3s ease;
transition: all0.3s ease;
}
a.foo: hover,
a.foo: focus {
color: #030;
background: #690;
}
Использование all
– удобный способ отследить все изменения, происходящие в состояниях :hover
, :focus
, :active
, который избавляет от необходимости перечислять каждое свойство, нуждающееся в обозначении перехода.
К каким свойствам применим переход
Мы применили переход к свойствам background и color. Но есть много других свойств, на которые можно наложить переход, включая width
, opacity
, position
и font-size
. Таблица всех свойств (и их типов значений) опубликована на сайте W3C ( http://bkaprt.com/css3/6/) [7].
Возможность создать полностью гибкое взаимодействие ясна. Мы будем использовать некоторые из этих свойств в сочетании с переходами в примерах следующей главы и далее в книге.
Почему бы не воспользоваться JavaScript?
Читатель может подумать: раз не все браузеры поддерживают CSS-переходы, почему бы не использовать решение на JavaScript, чтобы показывать анимацию? Популярные фреймворки – jQuery, Prototype, script.aculo.us – уже давно предоставляют кросс-браузерные анимации.
Все зависит от того, насколько важны анимации. В книге я делаю акцент на том, что можно извлечь максимум из простоты и гибкости CSS3, выбирая подходящие части интерфейса, к которым можно применять новые свойства и улучшать взаимодействие пользователя с сайтом. Довольно часто анимации, сделанные средствами CSS-перехода, не относятся к ключевым составляющим сайта – таким как бренд, читаемость или расположение информационных блоков. Поэтому использовать несколько простых строчек на CSS, которые порождают простую анимацию естественными средствами браузера вместо того, чтобы привлекать JavaScript-фреймворк, кажется разумным. Очень хорошо, что он есть в нашем распоряжении.
Как и все блестящие новые инструменты, переходы стоит использовать там, где они уместны. Очень легко нарушить чувство меры и добавить переходы ко всем элементам на странице, таким образом превратив ее в раздражающего пульсирующего монстра. Очень важно осознавать, где переходы действительно улучшают интерфейс и где они лишь добавляют лишний шум. Кроме того, также важно следить за тем, чтобы переходы не мешали пользователю, когда он очень быстро взаимодействует с сайтом (например, резко переводит фокус с одного элемента меню на другой). Пользуйтесь переходами аккуратно и осторожно.
Читать дальше
Конец ознакомительного отрывка
Купить книгу