Вход/Регистрация
CSS3 для веб-дизайнеров
вернуться

Сидерхолм Дэн

Шрифт:

Если нужно добавить полусекундную задержку в краткую запись перехода, ее продолжительность ставится в конец правила:

a.foo {

padding: 5px 10px;

background: #9c3;

– webkit-transition: background 0.3s ease 0.5s;

}

a.foo: hover {

background: #690;

}

Разумеется, эти замечательные переходы прекрасно действуют в браузерах, работающих на движке WebKit. Что насчет остальных?

Поддержка в браузерах

Как упоминалось ранее, переходы были изначально разработаны для движка WebKit и включены в Safari и Chrome начиная с версии 3.2, но Opera также поддерживает их начиная с 10.5 [5] . Поддержка заявлена и в Firefox 4.0 [6] .

Учитывая поддержку переходов на сегодняшний день и в ближайшем будущем, важно перечислять все требуемые браузерные префиксы, чтобы переходы работали в большем количестве браузеров по мере появления поддержки.

5

http://www.opera.com/docs/specs/presto23/css/transitions/

6

https://developer.mozilla.org/en/Css/Css_transitions

Полная запись перехода

Ниже приводится дополненное объявление перехода, в которое добавлены префиксы

– moz-
и 
– o-
, как и основное свойство
transition
. Как обычно, свойство без префикса ставится в самый конец, чтобы у него был наибольший вес, когда это свойство перейдет из состояния черновика в окончательную версию спецификации.

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 {

background: #690;

}

Такая запись позволяет получить сглаживание цвета фона в последних версиях Safari, Chrome и Opera, равно как и в более свежих версиях всех остальных браузеров, которые решат поддерживать переходы.

Состояния перехода

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

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

Например, можно наложить переход на состояния

: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;

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: