Niestety nie można tego zrobić w czystym CSS domyślnie element dziecko nie dziedziczy width
, trzeba określić to tak, domyślnie będzie to 100%, jeśli użyjesz elementu blokowego, takiego jak tag div
lub p
, ale w kolejności do dziedziczą (ponownego wykorzystania) własność Dziadkowie można wykorzystać procesory CSS wcześniej jak mniej lub SASS ..
więc jeśli chcesz to zrobić w SASS możemy zrobić coś
.a {
width: 600px;
}
.b {
width: 80%;
}
.c {
@extend .a;
//This is still not an inheritance, you are simply pulling in all the
//properties defined in .a to this class
}
So tutaj wybierze wszystkie właściwości z .a
do .c
. Ale tu jest haczyk, podczas korzystania .
notacji w SASS, to dosłownie wydrukować blok .a
, tak więc jeśli chcesz tylko używać go do @extend
celu można napisać ten selektor zamiast
%a {
width: 600px;
}
.c {
@extend %a;
}
Tu Sass nie drukuje .a
już jednak tylko .c
Ty możesz skierować urzędowe dokumenty dłużej nad SASS @extend
można również zdefiniować zmienne w SASS więc zdefiniowanie jednego z $base-width: 600px;
i ponownie używając go w poprzek może mieć sens, jak również. Jeśli nadal chcesz trzymać się tradycyjnego CSS, to polecam deklarowanie wielu klas, tak jak sugerował Manoj, ale nie zrobiłbym tego tak, jak gdybyś deklarował jakiekolwiek właściwości w .a
i to samo w .c
rzeczy zaczną się brudzić.
Zalecam użycie zmiennej: '$ width: 600px;' oraz '.c {width: $ width; } 'over' @ extend', ponieważ ten drugi może mieć nieoczekiwane i trudne konsekwencje –
Miałem zamiar napisać to w mojej własnej odpowiedzi, ale myślę, że prawdopodobnie się zgubi –
xD Napisałem to pierwszy i usunąłem to, więc pomyślałem, aby dodać go ponownie tylko dlatego, że jest to również jeden z najlepszych sposobów radzenia sobie z takimi rzeczami. –