R}hÅÝéSassÌî{ÆoÍX^C
CSS Preprocessor Advent Calendar 2012Ì14úÚÌLÅ·B
Sassð©ªÌÖíé¢ë¢ëÈÄÅæèüên߼¿Üµ½B½¾¢¾É¤Ü¢©È¢Æ±ëà èÂÂAúXg¢ûðÍõµÂÂ\¬ð©ñª¦ÄâÁÄ¢éóµÅ·B\¬Ìî{ÍACSS Preprocessor Advent Calendar 2012Ì10úÚÉ@Takazudo³ñª¢Ä¢éæ¤ÉAOOCSSðOªÉ¨«ÂÂ\¬µæ¤ÆæègñŢܷB
³Ä¡ñÍgÁÄ¢éàe ê±êÆ©àl¦Üµ½ªAÈPÉî{IÈƱëðBR}h@¢ÄRpCÌƱëð¢Ä¢±¤Æv¢Ü·B
SassÌ\¢Íõ
¡úÌ{èÉüéOÉ]k©çB
êlâOOCSSðð·élÅvWFNgðißéêÍOOCSSÅ\¬µÄ¢ÌÍâèÈ¢ÌÅ·ªACSSªêèÈlÆ¡ª¯Éißéæ¤ÈvWFNgÌêÍi»ñÈêÁÄÈ¢©àµêȢŷªA»ÝÌÍCSSªs¾è¾¯ÆHTMLðlÆ¢¤vO}³ñª4`6¼¢éÈ©ÅißĢܷjAKvÈclassª¡ éÆÈéÆclassªzèÈãÉÍ¢ÁÄ¢½èAzèÈOÌgíêûðµÄµÜ¤½ßAÈ©È©¤ÜæèüêçêÈ©Á½èµÜ·B
CSSªêèÈlÉAu±ÌX^C\¬Åißľ³¢vƵÄ`¦é½ßÉA@hiloki³ñª7úÚÌLŢĢéuCSSvvZbTÅX^CKChvæ¤ÈX^CKCh𫾵Ģæ¤Èc[ÍK{ÉÈ軤ŷB
³ÄAÍõµÄ¢é¤ñÊñÌbͨ¢Æ¢ÄA¡úÌàeBR}hÅâÁÄÝæ¤Æ©»¤¢¤bðÈPÉB
¢½SassÌR[hÍ»ÌÜÜÅÍuEUÅÍ\¦Å«È¢ÌÅ·ªRpC·é±ÆÅCSSƵÄ@\µÜ·BSassR[hðRpC·é½ßÉÍA¼¨³ñª12úÚÉuCodeKitÅÈPÉCSS Preprocessorðp·éIvŢĢéæ¤ÉACodeKitðg¤ûªy©àµêȢŷªA©ªÍÅÉ^[~iÅSassÌÛ¶ðĵÄg¤æ¤ÉµÄ¢Ü·B
fUCi[ÉÆÁÄÌæÊ
fUCi[ÉÆÁÄAæÊð©ÁÄR}hÅðs¤Æ¢¤ÌÍA~ª©Á½èµÄg¤ÌªêèÆ¢¤lª½¢Å·B©ªàÈOÍ»ÌÐÆèÅA^[~iÅR}hðü͵Ľ©ðs¤Æ¢¤±ÆÍêèŵ½B
µ©µASassÌR}hðüêéç¢Åµ½ç»ñÈåµ½±ÆÈ©Á½ÌÅAd·éOÉêxN®µÄ¨¢ÄA ÆÍEBhEðµÜÁÄ»ÌÜÜɵĢܷB
¢æÊÉ¢ÄÍÈOÉ¢½u¢æÊƵíÁÄÝÄ¢évÅgÁÄÝÄ¢é±Æð¢Ä¨«Üµ½B
Sassðg¤¬ê
Sassðg¤TvƵÄ̬ę̂³ç¢
1: Sasst@CÌì¬ixxx.scssj 2: CSSt@Cì¬ÌR}hÖÌRpCixxx.scss ¨ RpCj 3: RpC®¹ixxx.scss ¨ RpC ¨ xxx.cssj
R}hÉæéSass
SassÌR}hðüÍ·é½ßÌXebvÍȺÌæ¤ÉµÄ¢Ü·
PDSassðg¤fBNgÜÅÚ®
æÊÅàfBNgÌÚ®ªKvÅ·BMacÅ¢¤Æ±ëÌFinderÅg¤½ßÌfBNgðIð·éìÆÅ·B}EXÆNbNÚ®·éÙ¤ªyÈÌÍí©èÜ·ªAR}hÅà¿å¿åÁÆüê龯ŷi¦1jB
cd fBNgpX
fBNgÌÚ®ÍcdÆ¢¤R}hÅAXy[Xð꠯ĩçAvWFNgªÛ¶µÄ éfBNgÜÅÌpXifBNgÌKwð½Çé¹jðüÍÅ·B±±¾¯Í»ê¼êÌPC«àÌDZÉÛ¶µÄ¢éÌ©ÉæèÜ·ÌÅAȪB
¿ÈÝÉ©ªÍworksÆ¢¤tH_ÉÐÆÊèÜÆßÄìÆpÌvWFNgðÜÆßÄ¢éÌÅA»±ÜÅÌpXðüÍ·é±ÆÉÈèÜ·B
àµüÍ·épXªí©çÈÄàAgÁÄ¢éVFÆ¢¤àÌÉæèÜ·ªAî{IÉÍtabL[ð·±ÆÅAóâªYbÆoÄ«Äêéæ¤Å·B»êðÝÄü͵ÄÚ®·é̪y¾Æv¢Ü·BlÌgÁÄ¢ézshÌVFàtabL[ð·±ÆÅêªÅÄ«ÄêÄA»êðIðµÄ¢é¾¯ÅÚ®ªÅ«éæ¤ÉµÄ¢Ü·B
QDSasst@CÆRpCãÌt@C
SassÌt@CÆRpCãÌt@CðR}hÅwèµÄRpCðµÜ·BºLÌáÍstyle.scsst@Cðstyle.csst@C
// sass RpCOxxx.scss:RpCãxxx.css
sass sass/style.scss:css/style.css
µ©µñ±ÌR}hð@¢Ä¢éÌÍÊ|¾µAÛ¶ãÉ·®ÉmFÅ«éÙ¤ª¢¢B
SassÉÍÛ¶ðĵÄêé½ßÌR}hª éÌÅA»êðg¢Ü·B
RDSasst@CÌÛ¶ÌÄ
PÌÌt@CðÄ·éêͺL
// sass --watch RpCOxxx.scss RpCãxxx.css sass --watch sass/style.scss:css/style.css
fBNg²ÆÄ·é½ßÉÍ
// sass --watch RpCOxxx.scss RpCãxxx.css sass --watch sass:css
SDRpCãÌX^C
ftHgÌóÔÅRpCð·éÆAlXgÅCfg³ê½R[hªoͳêÜ·
SassÌTutorialÅÌR[hðQlÉÝÄÝܵå¤
yRpCOz
/* style.scss */ #navbar { width: 80%; height: 23px; ul { list-style-type: none; } li { float: left; a { font-weight: bold; } } }
yRpCãz
/* style.css */ #navbar { width: 80%; height: 23px; } #navbar ul { list-style-type: none; } #navbar li { float: left; } #navbar li a { font-weight: bold; }
±êÍRpCãÌX^CªftHgÅÍcompressedÌ`®ðÆÁÄ¢é©çÅ·B
SassÉÍRpCãÌX^CiOutput StylejªSíÞpÓ³êÄ¢ÄA»êðR}hÅwèµÄ¨±ÆªÅ«Ü·B
ÐÆÊèÝÄÝܵå¤
:nested
lXgªCfg³ê½`®ÅÌoÍ
// --style nested sass sass/style.scss:sass/style.css --style nested
yRpCãz
#navbar { width: 80%; height: 23px; } #navbar ul { list-style-type: none; } #navbar li { float: left; } #navbar li a { font-weight: bold; }
:expanded
lXgÌCfgªÈ¢óÔÅÌoÍB©ªÍÊíÌCSSͱÌ`Åo͵ĢéÌÅA[i·éæ¤È`®ÅwèªÈ¯êÎî{ͱÌ`ɵĢé±Æª½¢Å·B
// --style expanded sass sass/style.scss:sass/style.css --style expanded
yRpCãz
#navbar { width: 80%; height: 23px; } #navbar ul { list-style-type: none; } #navbar li { float: left; } #navbar li a { font-weight: bold; }
:compact
ZN^²ÆÉPs¸ÂÉRpNgÉÈÁ½`®BvWFNgisÈÇͱÌ`®Åi߼ÍyÊ»µÄÇÝñÅ¢é±Æª½¢Å·BÂlIÉÍsªmFÅ«éÌűÌ`®ªy¾ÆvÁĢܷB
// --style compact sass sass/style.scss:sass/style.css --style compact
yRpCãz
#navbar { width: 80%; height: 23px; } #navbar ul { list-style-type: none; } #navbar li { float: left; } #navbar li a { font-weight: bold; }
:compressed
SÄðêsàÉÜÆß½`®BêÔyÊB
// --style compressed sass sass/style.scss:sass/style.css --style compressed
yRpCãz
#navbar{width:80%;height:23px}#navbar ul{list-style-type:none}#navbar li{float:left}#navbar li a{font-weight:bold}
R}h¿åÁÆÇÁ·é¾¯ÅÏXÂ\ÈÌÅA»ÌXÉæÁÄ`®ðI×éæ¤ÉÈÁĢܷB¢ëñÈc[ðg¤êÅàA±ÌÖñÌÝèªÅÉ Á½èµÜ·æËB
LbV ðìçÈ¢
SassðR}hÅ@¢Ä¢éÆCÃÆv¤ÌÅ·ªA.sass-cacheÆ¢¤tH_ª©®IÉÅÄ«Ü·Bî{IÉÍoͳêÄ¢Äà³µ½ç¢¢ÌÅ·ªA±êðìè½È¢Æ¢¤êà é©àµêܹñi éÌ©Hj»ñÈêÍR}hÉ¿åÁÆÁ¦é¾¯ÅoͳêÈ¢æ¤ÉÈèÜ·B
--no-cache
--no-cacheÌR}hðÇÁ·é¾¯Å·
// --no-cache sass sass/style.scss:sass/style.css --no-cache
±êÅLbV ðìç¸ÉRpC·é±ÆªÅ«Ü·B
©ªªægÁÄ¢éR}h
±±ÜÅ¢ë¢ë«Üµ½ªAÅIIÉ©ªÍºLÌæ¤È`ÅR}h½½¢ÄA ÆÍúuµÄ¨¢ÄÜ·B
sass --watch sass:css --style compact --no-cache
ÈãÈPÉî{ðBÝȳñÍÇÌæ¤ÉgÁÄ¢éŵ天Hc[ðg¤ÌàyÅ·ªAR}h¾ÁÄêxR}hü͵½ ÆͽàÊ|ȱÆÍÈ¢ÌÅA±ê¾¯Å·ÌÅAÊ|ȯêÎc[gí¸É^[~iÈÇg¤ÌÍǤŵ天H
¦1FÚ®µÄ¨©ÈÄàg¦Ü·ªí©èâ·¢æ¤ÉÚ®µÄ¢Ü·