我想知道是否可以完成以下操作。查看此示例http://jsfiddle.net/huhu/r7kSf/,是否只能以不透明度级别为目标?让我们说opacity:0.5;
正常条件和悬停以完全不透明?我知道当使用颜色时使用 alpha 系数更容易,但是只有图像呢?选项可以是使用两个不同的图标吗?在悬停下加载它的替代版本?我认为这不是一个好主意,因为对于许多 http 请求,除非在 sprite 中。
谢谢
我想知道是否可以完成以下操作。查看此示例http://jsfiddle.net/huhu/r7kSf/,是否只能以不透明度级别为目标?让我们说opacity:0.5;
正常条件和悬停以完全不透明?我知道当使用颜色时使用 alpha 系数更容易,但是只有图像呢?选项可以是使用两个不同的图标吗?在悬停下加载它的替代版本?我认为这不是一个好主意,因为对于许多 http 请求,除非在 sprite 中。
谢谢
是的,使用 CSS3 的rgba
背景。例如,#F7F8BD
用 50% opacity 变为rgba(247,248,189,0.5);
注意兼容性还不是 100%,所以使用以下:
background: #F7F8BD; /* Browsers that don't support RGBa */
rgba(247,248,189,0.5); /* CSS3 */
有关详细信息,请参阅http://css-tricks.com/rgba-browser-support/。
代替
opacity:0.5
采用:
background-color:rgba(0,0,0,0.5);
其中前 3 个数字是红色、绿色和蓝色值,最后一个是 alpha 值,它为您的背景提供透明度
如果我理解这个问题,那么不 - 你不能对子弹图像应用不透明度,但不能对整个图像应用不透明度li
。
您最好的选择是将图像作为背景放入span
:
<li><span class="bg"></span> Text</li>
并将不透明度应用于span
这是可能的,但需要一些棘手的 CSS3 hacking - 基本上,使用伪元素在每个项目前面创建一个新的 inline-block 元素:before
,然后调整这些元素的不透明度。此外,您不会将背景图像分配给<li>
元素本身,而是将其分配给:before
伪元素。
#mainFeatures li:before {
content: '\0000a0';
display: inline-block;
opacity: 0.5;
width: 30px;
}
#mainFeatures li#[insert element ID here]:before {
background:url([image url]) no-repeat 0 5px;
}
我已经修改并分叉了你的小提琴 - 看看:) http://jsfiddle.net/teddyrised/QBGWf/1/