2017-06-02 20 views
1

有沒有一種方法可以在webpack sass編譯器中從sass編譯中排除顏色屬性,以防止子元素中的不透明問題。 目前,它編譯如下:從sass編譯中排除顏色屬性

div { 
    background: rgba(255, 255, 255, 1); 
} 

到:

div { 
    background: white; 
} 

對不起我的英語不好:)

+0

這可能會指向您正確的方向:https://stackoverflow.com/questions/15757665/why-does-sass-change-the-format-of-my-colors –

回答

0

你不能阻止它。因爲它是一種將顏色轉換爲十六進制的sass函數。

但也有一些方法來避免它

  1. 您可以創建自己的RGBA功能,將這樣的伎倆爲您 @function rgba($r, $g, $b, $a) { @return unquote('rgba(#{$r}, #{$g}, #{$b}, #{$a})'); }

但這樣做意味着有變化,如果有人正在使用rgba(hex, a)那麼它會失敗,如果有一個人使用像rgba(rgb(255,255,255), 1)這樣的語法,那麼它也會失敗。所以你必須查看你的項目結構,看看所有文件中的語法如何。而且你必須提到團隊單獨使用rgba。

  • 否則,您可以創建一個簡單的混入

    @mixin mysuper-rgba($hexcolor, $opacity) { background-color: $hexcolor; background-color: rgba($hexcolor, $opacity); }
    body { @include mysuper-rgba(#11111, 0.5); }

  • 我的建議是創建一個混合,會做的伎倆爲您和問所有的開發者都使用相同的。