如何在css中使一个600px宽度的图片只有左侧的100px透明?是否有相应的css属性可供使用?
我已经尝试添加重叠的
并向该
添加不透明度,但这很麻烦,而且看起来不是很好的解决方案。
如何在css中使一个600px宽度的图片只有左侧的100px透明?是否有相应的css属性可供使用?
我已经尝试添加重叠的
我发现使用 position:absolute
重叠的 div 是唯一的解决方案,因为在 CSS 中没有属性可以捕捉半张图片。
HTML
<div class="parent">
<div id="opacity_div"></div>
<img class="half_fade" src="http://i.stack.imgur.com/W7mPR.jpg?s=32&g=1">
</div>
CSS
.parent{
position:relative;
}
#opacity_div{
background:#fff;
height:20px;
width:20px;
position:absolute;
top:18px;
left:6px;
opacity:0.5 /* manipulate to desired opacity */
}
img.half_fade {
position:absolute;
top:0;left:0;
z-index:-1000;
}
<img src="img.jpg" id="image-overlay" />
<img src="img.jpg" id="image" />
CSS:
#image-overlay{position:absolute;clip: rect(0px,498px,374px,100px);}
#image{opacity:0.5;}
如果您想做好未来准备,请在CSS中使用优雅降级的clip-path功能。请参见以下代码(或http://codepen.io/anon/pen/zqLdxW)。
#image-overlay{position:absolute;
clip: rect(0px,498px,374px,100px);
-webkit-clip-path: inset(0px 0px 0px 100px);
clip-path: inset(0px 0px 0px 100px);
}
#image{opacity:0.5;}
clip
已被弃用,而clip-path
在浏览器支持方面存在问题。 - Vucko