Sass – dziedziczenie
dziedziczenie, ineritance
dwie ważne zasady:
- nie można w ciągu wprowadzać kolejnych class po @extend
- klasa musi być zdefiniowana w danym zakresie styli, czyli nie możemy użyć w @media queris {} klasy jako @extend którą zdefiniowaliśmy po za tym @media queris {}
sass:
.error color: $colorError .critical_error @extend .error border-bottom: 1 solid $colorError
css:
.error,
.critical_error {
color:#c00c30
}
.critical_error {
border-bottom:1 solid #c00c30
}
–
selektory stworzone tylko do tworzenia @extension nie będące żadną 'fizyczną’ klasą w css – %
sass:
%highlight background-color: lighten(orange, 10%) .sub_title font-style: italic @extend %highlight h4 font-size: 30px @extend %highlight
css:
.sub_title, h4 {
background-color:#ffb733
}
.sub_title {
font-style:italic
}
h4 {
font-size:30px
}
opcjonalne rozszerzenie, jeśli jest zdefiniowane jest interpretowane, jeśli nie istniej jest ignorowane i nie zwraca błędu – !optional
sass:
.sub_title font-style: italic @extend %highlight @extend .foo !optional
@extend vs @mixin
jeśli te same style zamkniemy w @mixins a nie w @extension otrzymamy więcej powtarzalnego kodu w css
sass:
%btn
border: none
background-color: $colorAccent
color: $colorText
&:hover
background-color: darken($colorAccent, 0.5)
%btn_min
height: 20px
line-height: 20px
.btn_primary
@extend %btn
padding: 5px
.btn_secondary
@extend %btn
@extend %btn_min
font-size: 10px
css:
.btn_primary, .btn_secondary {
border:none;
background-color:#08baba;
color:#161616
}
.btn_primary:hover, .btn_secondary:hover {
background-color:#08b8b8
}
.btn_secondary {
height:20px;
line-height:20px
}
.btn_primary {
padding:5px
}
.btn_secondary {
font-size:10px
}
sass:
@mixin btn
border: none
background-color: $colorAccent
color: $colorText
&:hover
background-color: darken($colorAccent, 0.5)
@mixin btn_min
height: 20px
line-height: 20px
.btn_primary
@include btn
padding: 5px
.btn_secondary
@include btn
@include btn_min
font-size: 10px
css:
.btn_primary {
border:none;
background-color:#08baba;
color:#161616;
padding:5px
}
.btn_primary:hover {
background-color:#08b8b8
}
.btn_secondary {
border:none;
background-color:#08baba;
color:#161616;
height:20px;
line-height:20px;
font-size:10px
}
.btn_secondary:hover {
background-color:#08b8b8
}
–
Hope this helps and happy coding :)
Zobacz jeszcze
Sass - functions
interactive sass shall in comand line: sass -i or sass --interactive + enter #333 + #777 -> #aaa #090807 - #030201 -> #060606 #123456 * 2 -> #2468ac #222 * #040404...
sass
Sass - kodowanie
@ - symbol oznacza dyrektywę # - symbol interpolacji by połączyć zmienną z wyświetlana...