рд╕рд┐рддрдВрдмрд░ рдореЗрдВ, рдореИрдВрдиреЗ рдПрд╕рд╕ рдореЗрдВ рдХреЛрдб рд╕реНрдХреВрд▓ рдореЗрдВ рдПрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рд▓рд┐рдпрд╛, рдЬрд┐рд╕реЗ рдЕрд╕реЗрдВрдмрд▓рд┐рдВрдЧ рд╕рд╛рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдФрд░ рдЗрд╕реЗ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рд╕рд╛рд╕ рдореЗрдВ рдЧреБрд░реБ рдирд┐рдХ рд╡реЙрд▓реНрд╢ рдХреЛ рд╕рд┐рдЦрд╛рдпрд╛ред рдкрд╛рдареНрдпрдХреНрд░рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдореИрдВ рдЦреБрдж рдкрд░ рдХреНрдпрд╛ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВред рдореЗрд░реЗ рдорд┐рддреНрд░ рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ "рдХрдо рдкрдВрдЪ" рдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ - рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рдЕрдЧреНрд░рднреВрдорд┐ рд╣реЛрдиреЗ рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ CSS рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рдиреЗ рдкрд░, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд "рдЫреЗрдж" рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рддреЗ рд╣реИрдВред (рдпрджрд┐ рдпрд╣ рдХреЛрдб рдЪрд▓рд╛рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдореИрдВ рдЬреАрдердм рдХреЛ рд▓рд┐рдВрдХ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ)ред

рдХрдо рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:.punch(@punch-size: 100px, @punch-left: 0px, @punch-top: 0px, @punch-background: none, @punch-grid: false, @punch-z-index: 0) { @punch-sizeIn: @punch-size*0.86; @punch-shadowOffset: @punch-size/20; @punch-shadowSize: @punch-size/20; @punch-bgShadowOffset: @punch-size/10; @punch-bgShadowSize: @punch-size/5; left: @punch-left; top: @punch-top; box-shadow: inset 0px @punch-shadowOffset @punch-shadowSize rgba(0,0,0,0.5); z-index: @punch-z-index; .punch-shadow; .punch-white { box-shadow: inset 0px -@punch-shadowOffset @punch-shadowSize rgba(255,255,255,0.3); .punch-shadow; .punch-in { position: absolute; top: (@punch-size - @punch-sizeIn)/2; left: (@punch-size - @punch-sizeIn)/2; width: @punch-sizeIn; height: @punch-sizeIn; z-index: @punch-z-index + 1; border-radius: @punch-sizeIn/2; background: @punch-background; .punch-grid(@punch-grid); box-shadow: inset 0px @punch-bgShadowOffset @punch-bgShadowSize rgba(0,0,0,0.8); .punch-content { overflow: hidden; border-radius: @punch-sizeIn/2; max-height: @punch-sizeIn; max-width: @punch-sizeIn; } } } .punch-shadow { position: absolute; width: @punch-size; height: @punch-size; border-radius: @punch-size/2; } .punch-grid (@punch-grid) { background-position: 0 0; } .punch-grid (@punch-grid) when (@punch-grid = true) { background-position: -@punch-left -@punch-top; } }
рд╕рд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдХрд▓рд╛ (.scss рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдмрд╛рдж рдореЗрдВ): @mixin punch($punch-size: 100px, $punch-left: 0px, $punch-top: 0px, $punch-background: none, $punch-grid: false, $punch-z-index: 0) { $punch-sizeIn: $punch-size * 0.86; $punch-shadowOffset: $punch-size / 20; $punch-shadowSize: $punch-size / 20; $punch-bgShadowOffset: $punch-size / 10; $punch-bgShadowSize: $punch-size / 5; left: $punch-left; top: $punch-top; box-shadow: inset 0px $punch-shadowOffset $punch-shadowSize rgba(0,0,0,0.5); z-index: $punch-z-index; @include punch-shadow($punch-size); .punch-white { box-shadow: inset 0px (-$punch-shadowOffset) $punch-shadowSize rgba(255,255,255,0.3); @include punch-shadow($punch-size); .punch-in { position: absolute; top: ($punch-size - $punch-sizeIn) / 2; left: ($punch-size - $punch-sizeIn) / 2; width: $punch-sizeIn; height: $punch-sizeIn; z-index: $punch-z-index + 1; border-radius: $punch-sizeIn / 2; background: $punch-background; @if $punch-grid{ background-position: (-$punch-left) (-$punch-top); } @else{ background-position: 0 0; } box-shadow: inset 0px $punch-bgShadowOffset $punch-bgShadowSize rgba(0,0,0,0.8); .punch-content { overflow: hidden; border-radius: $punch-sizeIn / 2; max-height: $punch-sizeIn; max-width: $punch-sizeIn; } } } .punch-shadow { @include punch-shadow($punch-size); } } @mixin punch-shadow($punch-size){ position: absolute; width: $punch-size; height: $punch-size; border-radius: $punch-size / 2; }
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реЗ рдЖрдк рдЕрдВрддрд░ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдХрдо рдореЗрдВ рд╣рдо рд╕реАрдзреЗ рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
.punch(@punch-size: 100px, @punch-left: 0px, @punch-top: 0px, @punch-background: none, @punch-grid: false, @punch-z-index: 0)
рд╕рд╛рд╕ рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
@mixin punch($punch-size: 100px, $punch-left: 0px, $punch-top: 0px, $punch-background: none, $punch-grid: false, $punch-z-index: 0)
рдЬрд╣рд╛рдВ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
@mixin methodName($arguments...)
рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЦрд░рд╛рдм / рдЕрдЪреНрдЫрд╛ рд╣реИред рдкреБрдХрд╛рд░рдирд╛ рд╣реИ
@mixin($arguments...)
рд╣рдореЗрдВ рдЧреБрдЬрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
@include methodName($arguments...)
рдЬрдмрдХрд┐ рдХрдо рдЖрд╕рд╛рди рд╣реИ
.class(@arguments[])
рдХрдо
@import "punches"; body { background-image: url("foreground.jpg"); } #punch { .punch(300px, 30px, 50px, url("background.jpg"), true); }
рд╕рд╛рд╕
@import "punches.scss"; body { background-image: url("foreground.jpg"); } #punch { @include punch(300px, 30px, 50px, url("images/background.jpg"), true); }
рдПрдХ рдЕрдиреНрдп рдмрд┐рдВрджреБ - рд╕рд╛рд╕ рдореЗрдВ, рдХрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдПрдХ @mixin () рджреВрд╕рд░реЗ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рдлрдВрдХреНрд╢рди рдХрд░рдирд╛ рдерд╛ (
рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рд╣реИ (рд╕рд╛рд╕ рдореЗрдВ) рдЬреЛ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, @mixin () рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдлрдВрдХреНрд╢рди (рдпрд╣рд╛рдВ )
( рдкрдВрдЪ
) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░реЗ рд╣реИ @ рдорд┐рдХреНрд╕рд┐рди рдШреВрдВрд╕реЗ ()ред
рдХрдо
.punch(@punch-size: 100px){ .punch-shadow; .punch-shadow { position: absolute; width: @punch-size; height: @punch-size; border-radius: @punch-size/2; } }
рд╕рд╛рд╕
@mixin punch(){ @include punch-shadow($punch-size); } @mixin punch-shadow($punch-size){ position: absolute; width: $punch-size; height: $punch-size; border-radius: $punch-size / 2; }
2) рдЕрдЧрд▓рд╛ рдЪрд░рдг, рд╣рдо рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд░ рдХреЛ "@" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдо рдореЗрдВ, "$" рд╕рд╛рд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рддрд┐рдкрд╣рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рдмрд┐рдВрджреБ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╕рд╛рд╕ рдореЗрдВ, рдпрджрд┐ рджреЛ рдирдВрдмрд░ / рдЪрд░ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдорд╛рдЗрдирд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ
рдХрдореНрдкрд╛рд╕ рдШрдЯрд╛рд╡ рдХрд░реЗрдЧрд╛ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИ )ред
рдХрдо
background-position: -@punch-left -@punch-top;
рд╕рд╛рд╕
background-position: (-$punch-left) (-$punch-top);
3) рдпрд╣ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП, рд▓реВрдк рдФрд░ рд╕рд╢рд░реНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред рдХрдо рдореЗрдВ рд╡рд╣ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рджреЛрд╕реНрдд рдХреЛ рдЕрдЧрд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛
рдХрдо
.punch-grid (@punch-grid) { background-position: 0 0; } .punch-grid (@punch-grid) when (@punch-grid = true) { background-position: -@punch-left -@punch-top; }
рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реА рдкрд╛рд░реА рдЦреЗрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
рд╕рд╛рд╕
@if $punch-grid{ background-position: (-$punch-left) (-$punch-top); } @else{ background-position: 0 0; }
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рдХрдо рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рд▓реВрдк рдХреА рднреА рдХрдореА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рдкрд░ рд▓рд┐рдЦрдирд╛ рдХрдард┐рди рд╣реИ (
рдореИрдВ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реИрд╕ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдФрд░ рд╕рд░рдгрд┐рдпрд╛рдВ рдЗрдВрдбреЗрдХреНрд╕ -1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, 0 рдирд╣реАрдВ )
рд╕рд╛рд╕
$authors: nick me you her; @each $author in $authors{ .author-#{$author}{ background: url(author-#{$author}.jpg); } // Sass backlass "//", .css. // for-loop @for $i from 1 through 3 { .item-#{$i} { top: $i * 30px; } } // while @while $v1 < 7{ .item-#{$v1}{ top: $v1 * 2; }
4) рдореИрдВ рдПрдХ рдиреЛрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - # {рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ - рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рдореЗрдВ рд╣реИ - рдпрд╣ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рд╕реАрдПрд╕рдПрд╕ рднрд╛рдЧ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ
background: url(author-#{$author}.jpg);-#{$1} // .item-#{$v1}
рдФрд░ рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдб 74 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рдЕрдиреНрдп 69ред рд▓реЗрдХрд┐рди рддрдм рд╕рд╛рд╕ рдХрд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рд▓реЗрдЦрди рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ - рдПрдХ .scss рдФрд░ .sass рд╣реИред рдХрдореНрдкрд╛рд╕ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "рд╕реИрд╕-рдХрдиреНрд╡рд░реНрдЯ" рд╡рд┐рдзрд┐ рд╣реИ (рдкрд╣рд▓реЗ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдПрд╕рдПрдПрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рдШреВрдВрд╕реЗ рд╣реИрдВред scss) рдФрд░ рдирд╛рдо:
~$ sass-convert punches.scss punches.sass
.Scss рдФрд░ .sass рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ (рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬреЗрдВ рд╣реИрдВ)ред
1)
@mixin methodName($arguments...)
рдЕрдм рдмрд╕
=methodName($arguments...)
2)
@include methodName($arguments...)
рдЕрдм рдмрд╕
+methodName($arguments...)
3) рдореБрдЦреНрдп рдЕрдВрддрд░ред Sass - рдХреЛрдИ рдЕрдВрдд рдирд╣реАрдВ рд╣реИ '' ;; рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВред
рд╕реИрд╕ (.sass)
=punch($punch-size: 100px, $punch-left: 0px, $punch-top: 0px, $punch-background: none, $punch-grid: false, $punch-z-index: 0)
рддреЛ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдорджрдж рдорд┐рд▓реА? рдореИрдВрдиреЗ LESS рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдореЗрдВ 2 рд▓рд╛рдЗрдиреЗрдВ рдФрд░ 0.1 KB рдЬреАрддрд╛ (рдореИрдВ .scss рдХреЗ рд╕рд╛рде 0.1 KB рдЦреЛ рджрд┐рдпрд╛)ред
рдкрд░рд┐рдгрд╛рдо - рднрд╡рд┐рд╖реНрдп рд▓реЗрд╕ рдФрд░ рд╕реИрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ, рдХрдо рдХреЛрдб рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрдардиреАрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ - рдХреЛрдб рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рд╢реНрди рд╣реИрдВ рдпрд╛ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдХреБрдЫ рдЧрд▓рдд рд╣реИред
рдкреАрдПрд╕ рдореИрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ рдПрд╕реЗрдВрдмрд▓рд┐рдВрдЧ рд╕реИрд╕ рдкрд╛рд░реНрдЯ 2 рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рдерд╛ - рдпрд╣рд╛рдВ рдлреЛрдХрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рднреА рдореБрдлреНрдд рд╣реИред