CSS Transitions
CSStransitions^2 areaCSS-basedwaytoupdatethevalueofaCSSpropertyovera
specifiedduration.Givenastartvalueandanendvalue,thebrowserwillinterpolate
in-betweenvaluesoverthecourseofthetransition.They’regreatforsimpleeffects
whereyoudon’tmindgivingupcontroloverhowtheanimationprogresses.Inmyownwork,Ioftenusetransitionsfor:hoverstates.Ialsousethemwhenre-
vealingorconcealingcontent,suchasshowinganoff-screenmenu.Youcouldcreate
animationsforsucheffects,butanimationsaregenerallymoreverbose,asyou’ll
seelaterinthechapter.BrowsersupportforCSStransitionsisquitegood(seeTable5.1),withthelatest
versionsofallmajordesktopandmobilebrowserssupportingthem.Inmost—UC
Browserbeingtheexception—novendorprefixisnecessary.Ofcourse,ifyour
audienceisstillheavywithpeoplewhouseolderversionsofFirefoxorSafari,
you’llwanttoincludetheappropriateprefixes(-moz-and-webkit-respectively).Table 5.1. Browser support for CSS transitions (Source CanIUse.com^3 )
Internet Opera Safari Android UC Browser
ExplorerChrome Firefox9+ (require
-webkit-
prefix)2.1 (versions
< 4.4
require
-webkit-
prefix)3.1+
(versions
6.1 require
-webkit-
prefix)1 0.5+
(versions <
12.1 require
-o- prefix)4+ (versions 1 0+
< 16 require
-moz-
prefix)4+ (versions
< 26 require
-webkit-
prefix)Transitionsalsodegradegracefully.Inbrowserswithoutsupportforthem,users
willjustseeatransition-freechangebetweenthetwovalues.Thismaybejarring—for
example,whenshowingorhidingcontent—butitwon’tbreakyoursite’sfunction-
ality.AnalternativeistouseaJavaScriptlibrary.jQuery,forexample,hasseveral
simpleanimationmethods.^4 Firsttesttoseewhetherthebrowsersupportstransitions
(oranimations),andfallbacktoJavaScriptmethodsifitdoesnot.(^2) http://dev.w3.org/csswg/css-transitions/
(^3) http://caniuse.com/#search=transitions
(^4) http://api.jquery.com/category/effects/
190 CSS Master