使图像叠加变暗并在CSS中添加文本

时间:2014-11-26 12:08:47

标签: html css css3 overlay transparency

如何变暗(添加半透明叠加层)并向此图像添加文本(但水平和垂直居中)如下所示:

enter image description here

HTML

<img src="http://luxurylaunches.com/wp-content/uploads/2014/05/uber-london.jpg" id="top" data-appear-animation="fadeIn">

CSS

#top {
width: 100%;
height: auto;
}
body {
margin: 0px;
}

在这里小提琴:http://jsfiddle.net/6jf0nxd5/

4 个答案:

答案 0 :(得分:2)

要使文本水平和垂直居中,您需要将其包装在text-align:center;的容器中。然后你可以使用一个伪元素来垂直居中。对于叠加层,您可以为文本容器指定一个可以具有透明度的rgba()背景颜色:

<强> DEMO

&#13;
&#13;
body {
    margin: 0px;
}
.wrap{
    position:relative;
}
.wrap img{
    width:100%;
    height:auto;
    display:block;
}
.text{
    position:absolute;
    top:0; left:0;
    width:100%; height:100%;
    background:rgba(255,255,255,.5);
    text-align:center;
}
.text:after{
    content:'';
    width:1px; height:100%;
    vertical-align:middle;
    display:inline-block;
}
.text span{
    display:inline-block;
    vertical-align:middle;
}
&#13;
<div class="wrap">
    <img src="http://luxurylaunches.com/wp-content/uploads/2014/05/uber-london.jpg" id="top" data-appear-animation="fadeIn" />
    <div class="text"><span>Text over the image
        <br/>Second line</span></div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个

HTML:

<img src="http://luxurylaunches.com/wp-content/uploads/2014/05/uber-london.jpg" id="top" data-appear-animation="fadeIn">
<div class="sometext">some text</div>

CSS:

#top {
    width: 100%;
    height: auto;
    opacity:.3;
    position:absolute;
    z-index:0;
}
body {
    margin: 0px;
}
.sometext {
    position:absolute;
    z-index:1;
}

答案 2 :(得分:0)

<强> http://jsfiddle.net/6jf0nxd5/21/

HTML

<div class='imgWrap'>
    <span>This is some very long text that might or might now flow on top of the image</span>
   <img src="http://luxurylaunches.com/wp-content/uploads/2014/05/uber-london.jpg" id="top" data-appear-animation=fadeIn">
</div>

CSS

.imgWrap{
    display:inline-block;
    background:#000;
    position:relative;
}

.imgWrap > img{ display:block; opacity:.5; }
.imgWrap > span{ position:absolute; display:table; text-align:center; z-index:1; height:100%; left:0; right:0; padding:20px; color:#FFF; font-size:2em; }
.imgWrap > span::after{ content:attr(data-title); display:table-cell; vertical-align: middle; }

答案 3 :(得分:0)

HTML

<div id='back'><div id='mask'><div id='text'>fsfsfsssf</div></div></div>

CSS

body{
    margin:0px;
}
#back{
    width:100%;
    height:500px;
    background: url("http://luxurylaunches.com/wp-content/uploads/2014/05/uber-london.jpg") no-repeat;
    background-size:contain;
}
#mask{
    position:relative;  
    width:100%; 
    height:500px; 
    background:rgba(255,255,255,0.5); 
}
#text{
    position:absolute;
    top:230px;
    left:48%;
}

小提琴:http://jsfiddle.net/6jf0nxd5/20/