2012-05-18 19 views

Odpowiedz

2

nie widzę jak to będzie działać nawet, faktem jest SASS nie może magicznie znać rozmiar twój box będzie miał.

Teraz, gdy otrzymam to, co próbujesz zrobić, najlepszym rozwiązaniem będzie zawarcie szerokości rodzica .box w zmiennej, a następnie odjęcie szerokości obrazu do tej zmiennej - biorąc pod uwagę, że szerokość 100% oznacza, że ​​dostanie 100% pewna szerokość.

+7

'calc()' to magia, której brakowało sassowi. Ta odpowiedź nie jest już poprawna. –

+1

@SethBattin Powiedzenie, że odpowiedź brzmi "już nie jest poprawne" nie jest całkowicie prawdziwe: Sass * nie może * odjąć pikseli od wartości procentowych/em/rem/vh/vw/etc. 'calc()' jest cechą CSS, a nie Sass. – cimmanon

+1

@cimmanon To nieprzydatne rozróżnienie, aby podkreślić, że sass nie może nic zrobić, gdy celem jest zaimplementowanie tego w css. Używanie sass to tylko dodatkowa złożoność stylizacji, a odpowiedź Aperçu dotyczy tej złożoności. –

19

Możesz użyć funkcji , aby uzyskać to, co chcesz. Jest to eksperymentalne, ale wciąż jest możliwe pretty good supported przez różne przeglądarki.

Z Sass, można utworzyć calc mixin aby uzyskać to działa na kolejne wersje przeglądarek z -webkit i -moz przedrostków (nie potrzebuje Opera jeden):

@mixin calc($key, $value) { 
    #{$key}: -webkit-calc(#{$value}); 
    #{$key}: -moz-calc(#{$value}); 
    #{$key}: calc(#{$value}); 
} 

i wywołać ją z coś w stylu:

.bio { 
    @include calc("width", "100% - #{$image-size}"); 
} 
Powiązane problemy