Миксин Sass для прозрачности фона в IE8

Я новичок в Sass и борюсь с этим. Я не могу получить цвет для рендеринга как в hex (для IE), так и в rgba . Каждый маленький кусочек меня расстраивает, потому что я еще не освоил синтаксис, а результаты Google для Sass по-прежнему скудны.

Вот миксин:

@mixin transparent($hex, $a){
    /* for IEGR8 */
    background: transparent;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#{$a}#{$hex},endColorstr=#{$a}#{$hex});
    zoom: 1;
    /* for modern browsers */
    background-color: rgba(#{$hex},.#{$a});
}

Таким образом, @include transparent (# FFF, .4) должен создать красивый, совместимый с браузером прозрачный код, показанный ниже:

background: transparent;         
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#40FFFFFF,endColorstr=#40FFFFFF);
zoom: 1;
background-color: rgba(100,100,100,.40);

Я не замечал следующего на пару часов:

  • # требуется для формата #RGB.
  • . требуется для rgba alpha.

Оба должны быть включены для вызова rgba () , однако # не может быть включен для IE #AARRGGBB , иначе он будет выглядеть например # AA # RRGGBB , а расширение. не может быть включен для IE, или он отклоняет #. AARRGGBB .

Мне не хватает более простого способа сделать это? Можно ли это сделать с помощью манипуляций со строками Sass или какой-либо немного умной функции цветового оттенка в Sass, которая уже делает это за меня?

Muchas gracias.

20
задан Volker E. 27 August 2014 в 16:19
поделиться