2017-03-03 227 views
0

我嘗試讓我對除魔覆蓋稍微可控的,所以我想知道如果我可以做一些像SASS變量我添加opactiy壽,它不再做狗屎了。也離開0.並把整個變量似乎沒有正常工作..任何建議?不透明度

+2

是什麼,這一定是這樣動態的原因是什麼?你不能設置一個包含整個rgba的變量嗎? –

+1

爲什麼0. $ slider_text_background_opacity - 您是否試過將$ slider_text_background_opacity設置爲endvalue? –

+0

@ThomasYates所以無論誰使用這可以決定多少opactiy他想..有些客戶是..怪異 –

回答

0

所以你的最後一個變量是錯誤的。你不能把價值在一起,就像

0.$slider_text_background_opacity 

,但如果你這樣做

$slider_text_background_opacity: 0.5 

,然後把它的RGBA功能像這裏面:

background: rgba($red, $green, $blue, $slider_text_background_opacity); 

它的工作原理。

工作小提琴:https://jsfiddle.net/swchkt62/

0

所以,你不知道什麼是用戶不透明度值。這可能是0.220%20"lol"

SassMeister演示:link

要解決此問題,您可以使用下面的代碼:

// Removes units 
// 10px -> 10 
// 20% -> 20 
// .2 -> .2 
// lol -> 1 
@function strip-units($value: 1) { 
    @if (type-of($value) == 'number') { 
    @return $value/($value * 0 + 1); 
    } @else { 
    // Throw an error 
    // @error "Error from function strip-units: parameter $value must be a number!"; 
    // or return default value 
    @return 1; 
    } 
} 

// Returns opacity in decimal format 
// 10% -> .1 
// .1 -> .1 
// -1 -> 0 
// 101 -> 1 
@function get-opacity($opacity: 1) { 
    $opacity: strip-units($opacity); 

    @if ($opacity < 0) { 
    $opacity: 0; 
    } 

    @if ($opacity >= 100) { 
    $opacity: 1; 
    } 

    @if (($opacity > 1) and ($opacity < 100)) { 
    $opacity: $opacity/100; 
    } 

    @return $opacity; 
}