相关疑难解决方法(0)

Sass mixin用于背景透明度回到IE8

我是Sass的新手并且正在努力解决这个问题.我无法在两者中获得颜色hex(对于IE)和rgba.每一小段都令我感到沮丧,因为我还没有掌握语法,而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});
}
Run Code Online (Sandbox Code Playgroud)

@include transparent(#FFF,.4)应该产生以下良好的,浏览器兼容的透明代码:

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

几个小时后,我一直在注意以下事项:

  • #要求#RGB格式.
  • .需要RGBA阿尔法.

两者都需要包含在调用中rgba(),但是#不能包含在IE中,#AARRGGBB或者它看起来像#AA#RRGGBB和.不能包括IE或它拒绝#.AARRGGBB.

我错过了一个更简单的方法吗?这可以通过Sass字符串操作或Sass中的任何稍微聪明的色彩转换功能来完成,它已经为我处理了这个问题吗?

Muchas gracias.

css sass cross-browser mixins ruby-on-rails-3.1

20
推荐指数
1
解决办法
1万
查看次数

jQuery设置CSS背景不透明度

我有一个<div>透明的背景颜色(而不是它的内容),我想改变.远程API发送给我这种颜色:

#abcdef
Run Code Online (Sandbox Code Playgroud)

我告诉jQuery(1.9)通过.css以下方式应用这种颜色:

$('div').css('background-color', '#abcdef');
Run Code Online (Sandbox Code Playgroud)

结果div的background-color样式不是#abcdef,而是相同颜色的RGB表示.

background-color: rgb(171, 205, 239);
Run Code Online (Sandbox Code Playgroud)

(只是观察;不是问题的一部分)


项目要求已经改变,我现在还需要将背景的透明度改为设定的百分比(50%).background-color因此,我想要的属性

background-color: rgba(171, 205, 239, 0.5);
Run Code Online (Sandbox Code Playgroud)

但是,我找不到使用jQuery(十六进制颜色代码)设置此背景颜色属性的方法,并仍然应用alpha值.opacity影响div的内容以及背景,所以它不是一个选项.

$('div').css('background-color', '#abcdef')
        .css('opacity', 0.5);  // undesirable opacity changes to div's content
Run Code Online (Sandbox Code Playgroud)

给定字符串#abcdef,是否只有通过计算(例如hex2dec)才可以将背景不透明度应用于div,如果我只给出一个十六进制颜色字符串?

css jquery

8
推荐指数
2
解决办法
4万
查看次数

标签 统计

css ×2

cross-browser ×1

jquery ×1

mixins ×1

ruby-on-rails-3.1 ×1

sass ×1