CSS - Linear gradient transparency on both side of image
tl; dr
有什么方法可以在图像的左右两侧添加
长版
我有一个图像,我想在其两面都添加透明性-使用纯CSS-避免使用任何图像编辑器(例如Photoshop,Gimp等)。我尝试使用
所以这个片段
1 2 | height: 200px; background: -webkit-linear-gradient(left, rgba(255,0,0,0), rgba(255,0,0,1)); |
做这个:
在此示例中,rgba()中的最后一个参数定义颜色的透明度。到目前为止,一切都很好。如果将
我想以某种方式将两者合并,并创建一个在两侧透明的渐变。仅不带渐变。带有图像。
我也尝试使用
是否有可能仅使用CSS在图像的左侧和右侧添加透明度?
编辑:
例:
您可以使用包装器div,然后使用色标:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | div { position: relative; display: inline-block; } div:before { content:""; top: 0; left: 0; position: absolute; height: 100%; width: 100%; background: -moz-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 49%, rgba(255, 255, 255, 1) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(49%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(255, 255, 255, 1))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 49%, rgba(255, 255, 255, 1) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 49%, rgba(255, 255, 255, 1) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 49%, rgba(255, 255, 255, 1) 100%); /* IE10+ */ background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 49%, rgba(255, 255, 255, 1) 100%); /* W3C */ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=1); /* IE6-9 */ } |
1 | <img src="http://placekitten.com/g/300/300" alt="" /> |
资源资源
- 1 *梯度生成器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | .image { position: relative; } .image::after { position: absolute; top:0; left: 0; right: 0; bottom: 0; content: ''; display: block; background-image: linear-gradient(to right, currentColor 5%, transparent 30%); } .image::before { position: absolute; top:0; left: 0; right: 0; bottom: 0; content: ''; display: block; background-image: linear-gradient(to left, currentColor 5%, transparent 30%); } |
1 | <img src="http://placekitten.com/800/400"/> |
我发现做到这一点的一种方法是使用伪类并将它们堆叠在一起。 确保图像容器相对放置,并且可以为您工作(请参见示例)。