如何在CSS中的图像中添加渐变/滤镜

时间:2014-03-08 16:07:50

标签: css filter gradients

我的照片就在这里:

enter image description here

我希望在网站theverge.com上复制css样式(见下图)

enter image description here

我会在我的博客(主页)中使用它,因为我试图复制theverge.com网站的内容。就像在半透明渐变和特色图像上使用帖子的标题和作者的名字一样。

请帮忙。

这是我的html结构

http://jsfiddle.net/Kareen/kwPP8/2/

<div class="content">
    <h3>Some Title Goes Here</h3>
    <div>Author: Bill Jones</div>
    <img src="http://lorempixel.com/300/200/nature/5" />           
</div>

2 个答案:

答案 0 :(得分:7)

使用当前结构(您指明是必需的),位于主div上的伪元素可以解决问题。

注意:我只解决叠加问题。您仍然需要定位文本元素。 理想情况下重组HTML将是最好的课程。

JSfiddle Demo

<强> CSS

* {
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.content {
    position: relative;
    margin:10px;
    border:1px solid grey;
        display: inline-block;
}

.content img {
    display: block;
}

.content:after {
    position: absolute;
    content:"";
    height:100%;
    width:100%;
    top:0;
    left:0;
    background: linear-gradient(to bottom, rgba(255,0,0,0) 0%,rgba(255,0,0,0.65) 100%);
}

需要前缀,浏览器支持可能是IE9 +(非过滤器渐变)

答案 1 :(得分:0)

你可以这样做:

<div class="block">
    <div class="content">
        <h3>Some Title Goes Here</h3>
        <div>Author: Bill Jones</div>
    </div>
</div>

CSS:

.block {
    position: relative;
    width: 300px;
    height: 200px;
    border: 1px #DDD solid;
    background: url(http://lorempixel.com/300/200/nature/5) no-repeat 0 0;
}
.block .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, .7);
    color: #EEE;
    padding: 10px;
}

演示:http://jsfiddle.net/kwPP8/