"рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреМрди рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?" рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдордпрд┐рдХ рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИред рдХрдИ рдмрд╛рд░ рдореБрдЭрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рджреЛ рджрд┐рди рдореЗрдВ рдпрд╣ рд╕рд╡рд╛рд▓ рдиреЗрдЯ рдкрд░ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕реБрдЦрдж рд╣реИ рдХрд┐ рдмрд╛рддрдЪреАрдд рдХрд┐рд╕ рднрд╛рд╖рд╛ рдХреА рдЪрд░реНрдЪрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╣реИ, рдЗрд╕рдХреЗ рдкрдХреНрд╖-рд╡рд┐рдкрдХреНрд╖ рдХреЗ рдкрдХреНрд╖ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рдХреЗ рд╡рд┐рд╖рдп рд╕реЗ рдЪрд▓реЗ рдЧрдПред рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП!
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП: SASSред
рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддреГрдд рдЬрд╡рд╛рдм: рд╕рднреА рдЧрд┐рдирддреА рдкрд░ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреБрд╢ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред
рд╡рд┐рд╕реНрддреГрдд рдЬрд╡рд╛рдм: рдиреАрдЪреЗ
рд░реВрдмреА рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо
рдПрдХрдорд╛рддреНрд░ рдмрд┐рдВрджреБ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдХреЛрдбрдХрд┐рдЯ рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рд░реВрдмреА рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпрд╛ рдХреБрдЫ рдФрд░ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬрд░реВрд░реА рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрдбрд╝реА рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддрд╛ рд╣реИред
рд╡рд┐рдЬреЗрддрд╛: рдирд╣реАрдВред
CSS3 рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдЖрдк рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЬреЗрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрди рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреИрд╕реЗ рдмрдЪреЗрдВ? (рдирд╣реАрдВ, рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ) рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдЕрд╢реБрджреНрдзрддрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред SASS рдЖрдкрдХреЛ
рдХрдореНрдкрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рдСрдЯреЛ-рдЕрдкрдбреЗрдЯ рд╕реЗ рдЖрдк рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдк рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рддреЛ рдпрд╣ рд╕рдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП
рдЙрдмрд╛рд▓рддрд╛ рд╣реИ :
рдПрд╕рдПрдПрд╕рдПрд╕ рдореЗрдВ рдХрдореНрдкрд╛рд╕ рд╣реИ, рдЬрдмрдХрд┐ рд▓реЗрд╕ рдирд╣реАрдВ рд╣реИ ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реИред LESS рдХреЗ рд▓рд┐рдП рдХрдореНрдкрд╛рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд╕рднреА рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд░рд╣реЗ рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ LESS рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордЬрдмреВрдд рдкрд░реНрдпрд╛рдкреНрдд рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдиреАрдЪреЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрдЧрд╛ред
рд╡рд┐рдЬреЗрддрд╛: SASS
рднрд╛рд╖рд╛ рдХреА рдХреНрд╖рдорддрд╛: рддрд░реНрдХ / рдЪрдХреНрд░
LESS рдЖрдкрдХреЛ "рд╕рдВрд░рдХреНрд╖рд┐рдд рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ" рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпреЗ рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдБ рддрднреА рдкреНрд░рднрд╛рд╡реА рд╣реЛрдВрдЧреА рдЬрдм рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реЛрдЧреАред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкрд╛рда рд░рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдкрд╛рда рдХрд╛ рд░рдВрдЧ "рд╣рд▓реНрдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд" рд╣реИ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдПрдХ рдЕрдВрдзреЗрд░реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ "рдЕрдВрдзреЗрд░рд╛ рдкрд░реНрдпрд╛рдкреНрдд" рд╣реИ - рдЖрдк рдПрдХ рд╣рд▓реНрдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдкрдХреЛ рдЗрди "рд░рдХреНрд╖рдХреЛрдВ" рдХреЗ рд╕рд╛рде рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдПрдХ рдкреНрд░рд╡реЗрд╢ рдорд┐рд▓реЗрдЧрд╛, рдЬреЛ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХрдо.set-bg-color (@text-color) when (lightness(@text-color) >= 50%) { background: black; } .set-bg-color (@text-color) when (lightness(@text-color) < 50%) { background: #ccc; }
рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреГрд╖реНрдарднреВрдорд┐ рдорд┐рд▓реЗрдЧреА:
рдХрдо .box-1 { color: #BADA55; .set-bg-color(#BADA55); }
рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рд░, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рдЙрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдардВрдбрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред LESS рдЖрдкрдХреЛ рдЖрддреНрдо-рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдВ рд╕реНрд╡рдпрдВ рдХреЛ рдЕрджреНрдпрддрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрджрд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВред
рдХрдо .loop (@index) when (@index > 0) { .myclass { z-index: @index; } // Call itself .loopingClass(@index - 1); } // Stop loop .loopingClass (0) {} // Outputs stuff .loopingClass (10);
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдХрдо рдЕрдВрдд рдореЗрдВ рддрд░реНрдХ / рдЪрдХреНрд░ рд╣реИред рдПрд╕рдПрдПрд╕рдПрд╕ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдЪрдХреНрд░реАрдп рдСрдкрд░реЗрдЯрд░ рд╣реИрдВред рдпрджрд┐ / рддреЛ / рдЕрдиреНрдпрдерд╛, рд▓реВрдк рдХреЗ рд▓рд┐рдП, рдЬрдмрдХрд┐ рд▓реВрдк рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд▓реВрдк рдХреЗ рд▓рд┐рдПред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЯреНрд░рд┐рдХ, рд░рд┐рдпрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗред SASS рдПрдХ рдХрд╛рдлреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рднрд╛рд╖рд╛ рд╣реИ, рдЬреЛ рдХрдореНрдкрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдореНрдкрд╛рд╕ рдореЗрдВ
background
рдХрд╛ рдПрдХ рдорд┐рд╢реНрд░рдг рд╣реЛрддрд╛
background
, рдЬреЛ рдЗрддрдирд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЙрд╕рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ рд╡рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд┐рддреНрд░, рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдВрдпреЛрдЬрди, рдПрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдФрд░ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо (рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдмрд╛рдХреА рд╕рдм рд╕рд╣рд┐рдд) рдорд┐рд▓рддрд╛ рд╣реИред
рдХреЛрдб рдХрд╛ рд▓реИрдХреЛрдирд┐рдХ рдЯреБрдХрдбрд╝рд╛:
рдПрд╕рд╕реАрдПрд╕рдПрд╕ .bam { @include background( image-url("foo.png"), linear-gradient(top left, #333, #0c0), radial-gradient(#c00, #fff 100px) ); }
рдпрд╣ рдХреЛрдб рдиреАрдЪреЗ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ):
рд╕реАрдПрд╕рдПрд╕ .bam { background: url('/foo.png'), -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #333333), color-stop(100%, #00cc00)), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 100, color-stop(0%, #cc0000), color-stop(100%, #ffffff)); background: url('/foo.png'), -webkit-linear-gradient(top left, #333333, #00cc00), -webkit-radial-gradient(#cc0000, #ffffff 100px); background: url('/foo.png'), -moz-linear-gradient(top left, #333333, #00cc00), -moz-radial-gradient(#cc0000, #ffffff 100px); background: url('/foo.png'), -o-linear-gradient(top left, #333333, #00cc00), -o-radial-gradient(#cc0000, #ffffff 100px); background: url('/foo.png'), -ms-linear-gradient(top left, #333333, #00cc00), -ms-radial-gradient(#cc0000, #ffffff 100px); background: url('/foo.png'), linear-gradient(top left, #333333, #00cc00), radial-gradient(#cc0000, #ffffff 100px); }
рд╡рд┐рдЬреЗрддрд╛: SASS
рд╕рд╛рдЗрдЯреЛрдВ
LESS рд╕рд╛рдЗрдЯ рдЕрдзрд┐рдХ
рд╕реБрдВрджрд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ ред рдпрд╣ рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐
рдПрд╕рдПрдПрд╕ рдкреНрд░рд▓реЗрдЦрди рднрдпрд╛рдирдХ рд╣реИ, рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рджрд┐рд▓ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рд╕реБрдВрджрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ LESS рдХреЛ рдПрдХ рдлрд╛рдпрджрд╛ рджреЗрддрд╛ рд╣реИред рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдпрд╣ рдПрдХ рдмрдбрд╝реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ рдФрд░ LESS рдЗрд╕ рдЦреЗрд▓ рдХреЛ рдЬреАрддрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдм рдХреБрдЫ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ ред
рд╡рд┐рдЬреЗрддрд╛: рдХрдо
@ рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдХреЛ рдЕрдкрдирд╛рдПрдВ
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдПрдХ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддрд░рд╣ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рдеред LESS рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
рдХрдо .module-b { .module-a(); border: 1px solid red; }
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп "рд╢рд╛рдорд┐рд▓" рд╣реИред рдЖрдк рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ SASS рдореЗрдВ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди
@extend
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
@extend
рдХреЗрд╡рд▓
@extend
.module-a
.module-b
(рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ
.module-b
) рд╕реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ
@extend
рд╣реИ, рдпрд╣
.module-a
рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╛ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
.module-a, .module-b
рд╕рдВрдХрд▓рд┐рдд CSS рдореЗрдВ (рдЬреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ) рд╡рд┐рдзрд┐)ред
рдПрд╕рд╕реАрдПрд╕рдПрд╕ .module-a { } .module-b { @extend .module-a; }
рдЗрд╕рдХреЗ рд╕рдВрдХрд▓рди:
рд╕реАрдПрд╕рдПрд╕ .module-a, .module-b { } .module-b { }
рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ? SASS рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рд╣реИред
рд╡рд┐рдЬреЗрддрд╛: SASS
рдЪрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
LESS @ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, SASS $ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдбреЙрд▓рд░ рдХрд╛ рдЪрд┐рд╣реНрди CSS рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ @ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ @keyframes рдпрд╛ @media рдмреНрд▓реЙрдХ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╕рдПрдПрд╕рдПрд╕ рдХрд╛ рдпрд╣рд╛рдВ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
SASS рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЬреАрдм рд╕рдВрдкрддреНрддрд┐ рд╣реИ - рдпрджрд┐ рдЖрдк "рд╡реИрд╢реНрд╡рд┐рдХ" рдЪрд░ "рд╕реНрдерд╛рдиреАрдп" рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рд▓реЗрдЧрд╛ред рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИред
рдПрд╕рд╕реАрдПрд╕рдПрд╕ $color: black; .scoped { $color: white; color: $color; } .unscoped { // LESS = black (global) // SASS = white (overwritten by local) color: $color; }
рдпрд╣ рдЪрд╛рд▓ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред
рд╡рд┐рдЬреЗрддрд╛: рдЖрдкрдХреЛ рдПрдХ рд╕рд┐рдХреНрдХрд╛ рдлреЗрдВрдХрдирд╛ рд╣реИ :)
рдореАрдбрд┐рдпрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рд╣рдордореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рд╣рд░ рдПрдХ,
@media
рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЦреНрдп рд╢реИрд▓рд┐рдпреЛрдВ рдкреГрд╖реНрда рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ:
рд╕реАрдПрд╕рдПрд╕ .some-class { } @media (max-width: 800px) { .some-class { } }
SASS рдпрд╛ LESS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрдЯреИрдЪрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдПрд╕рд╕реАрдПрд╕рдПрд╕ .some-class { @media (max-width: 800px) { } }
"рд░рд┐рд╕реНрдкреЛрдВрдб-рдЯреВ" рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЪреНрдЫреА SASS рддрдХрдиреАрдХ рд╣реИ (
рдХреНрд░рд┐рд╕ рдПрдкреНрдкрд╕реНрдЯреАрди ,
рдмреЗрди рд╢реНрд╡рд╛рд░реНрдЬ рдФрд░
рдЬреЗрдл рдХреНрд░реЙрдлреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рджреЗрдЦреЗрдВ)ред
рдПрд╕рд╕реАрдПрд╕рдПрд╕ =respond-to($name) @if $name == small-screen @media only screen and (min-width: 320px) @content @if $name == large-screen @media only screen and (min-width: 800px) @content
рддреЛ рдлрд┐рд░ рддреБрдо рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рд░рд╕реАрд▓рд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдПрд╕рд╕реАрдПрд╕рдПрд╕ .column width: 25% +respond-to(small-screen) width: 100%
рдиреЛрдЯ: рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ SASS 3.2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдЕрднреА рднреА рдЕрд▓реНрдлрд╛ рдореЗрдВ рд╣реИ, рдЖрдк рдЗрд╕реЗ
gem install sass --pre
рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реИред
рд╡рд┐рдЬреЗрддрд╛: SASS
Metematika
рдореВрд▓ рд░реВрдк рд╕реЗ, рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЧрдгрд┐рддреАрдп рднрд╛рдЧ рдХрд╛рдлреА рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рд╡рд┐рд╖рдорддрд╛рдПрдВ рдЕрднреА рднреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, LESS рдорд╛рдк рдХреА рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рд▓реЗ рдЪрд░ рдХрд╛ рдорд╛рди рд▓реЗрдЧрд╛, рдмрд╛рдХреА рд╕рднреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдЧрд╛ред
рдХрдо div { width: 100px + 2em; // == 102px (weird) }
SASS рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рдпрд╣рд╛рдБ рдЫрд┐рдкреА рд╣реИ:
Incompatible units: 'em' and 'px'
ред рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рдореВрдЯ рдмрд┐рдВрджреБ рд╣реИ, рдЬреЛ рдмреЗрд╣рддрд░ рд╣реИ - рдПрдХ рдЧрд▓рддреА рдпрд╛ рдПрдХ рдЧрд▓рдд рдореВрд▓реНрдп, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реВрдВред рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЪрд░ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрд╕рдПрдПрд╕рдПрд╕ рдЖрдкрдХреЛ рдорд╛рдк рдХреА "рдЕрдЬреНрдЮрд╛рдд" рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЕрдЧрд▓реЗ рдЕрдкрдбреЗрдЯ рд╕реЗ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред LESS рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЬрдирдмреА рдорддрднреЗрдж рднреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕рдПрдПрд╕рдПрд╕ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЬ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рд╡рд┐рдЬреЗрддрд╛: SASS (рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЗ рд╕рд╛рде)
рд╡рд┐рдХрд╛рд╕
рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп ...
LESS
рд╕реЗ рдЦреБрд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ : 392
рдЦреБрд▓реЗ SASS
рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ : 84
рдкреВрд▓ рдЕрдиреБрд░реЛрдз (рд▓рдВрдмрд┐рдд) рдХрдо: 86
рдкреВрд▓ рдЕрдиреБрд░реЛрдз (рд▓рдВрдмрд┐рдд) SASS: 3
рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП
рдХрдорд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ : 11
рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╛рдЧрдорди
рдХреА рд╕рдВрдЦреНрдпрд╛ SASS: 35
рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдмрд┐рдВрджреБ рджреГрдврд╝рддрд╛ рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╕рдПрдПрд╕рдПрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рдирдП, рдХреЛрдИ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдирд╣реАрдВ рд╣реИред
рд╡рд┐рдЬреЗрддрд╛: рд╢рд╛рдпрдж SASS
рдЖрджрд░