ボックスの隅にグラフィック効果を追加するための mixin を作成しています。
mixin は、コーナーの位置 (tl、tr、bl、br)、サイズ、および色を受け入れます。
@mixin notch($notch-location, $size, $foreground-color, $background-color) {
%top--left {
@extend %notch;
&:before {
top: 0; left: 0;
border-width: $size $size 0 0;
}
}
// etc ...
%notch {
position: relative;
&:before {
@extend .pel;
position: absolute;
border-style: solid;
border-color: $foreground-color $background-color;
}
}
@if $notch-location == top-left {
@extend %top--left;
}
// etc ...
}
次に、セレクターで mixin を使用します。次に例を示します。
a {
@include notch(top-left, 24px, $color-brand, #fff);
}
残念ながら、結果のCSSは私が期待しているものではありません:
.menu.collapsed .nav .nav--current a a:before {
top: 0;
left: 0;
border-width: 24px 24px 0 0;
}
.menu.collapsed .nav .nav--current a a {
position: relative;
}
.menu.collapsed .nav .nav--current a a:before {
position: absolute;
border-style: solid;
border-color: #ec5b25 white;
}
例:
ご覧のとおり、ミックスインを介して追加されたスタイルは、余分な で修飾されていa
ます。なぜこうなった?