2012-01-19 10 views
10

Czy można odwoływać się do właściwości uprzednio zdefiniowanej w selektorze bez wprowadzania zmiennej pośredniej?SASS/SCSS: Odwołaj się do właściwości bez użycia zmiennej pośredniej

Chciałbym powiedzieć coś takiego:

.foo { 
    padding: 15px; 
    width: 300px - $padding; 
} 

wiem, że $ wyściółka składniowo szuka określonej zmiennej, używam go tylko w powyższym przykładzie w celu zilustrowania tego, co chcę osiągnąć w funkcjonalności.

Powyższy przykład byłoby równoznaczne z tym:

.foo { 
    $padding: 15px; 
    padding: $padding; 
    width: 300px - $padding * 2; 
} 
+0

także chcą tego w Sass. –

Odpowiedz

8

Nie, nie można, i byłoby świetnie.

Nie testowałem, ale o ile mi wiadomo, jedynym pre-procesorem css, który może to zrobić, jest stylus. Spójrz na variable section w dokumentacji, gdzie znajduje się Wyszukiwanie właściwości. Działa to w następujący sposób:

.foo { 
    padding: 15px; 
    width: 300px - @padding * 2; 
} 

Ale nie, w Sass nie możesz, o ile mi wiadomo.

+8

To jest dokładnie ta składnia, której chcę w sassie. Obawiałem się, że to nie będzie możliwe. Czas, aby wysłać zapytanie o funkcję. –

+0

Po drugie, byłoby to niezwykle użyteczne w niektórych sytuacjach (takich jak ćwiczenia na zawiasach mixin, które dynamicznie przesuwają położenie obrazu w tle o wysokość elementu nadrzędnego)! –

2

Jeśli jest to opcja do używania innego preprocesora niż scss, naprawdę polecam używanie Stylus. Istnieje funkcja o nazwie Property lookup, która jest dokładnie tym, czego potrzebujesz.

+1

Od kiedy należy udzielić odpowiedzi na pytanie dotyczące innej technologii? "Jak mogę zrobić X z MySQL?" "Nie możesz, ale baza danych Y to obsługuje!" – cimmanon

+2

Prawdopodobnie masz rację. Ale ponieważ nie ma opcji w SASS, aby to zrobić, może to opcja dla innego czytnika, aby przełączyć preprocesor. –

+0

Gdy rozwiązanie nie jest dostępne w granicach pytania, uważam, że bardziej niż uczciwe jest oferowanie sugestii, gdzie można znaleźć żądaną funkcję. – theCrius

Powiązane problemy