css背景图像透明

时间:2013-06-07 14:25:04

标签: html css3

原来我的CSS是,

  .featured .content-wrapper
  {
   background-color: #7ac0da;
    background-image: -ms-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
    background-image: -o-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
    background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7ac0da), color-stop(1, #a4d4e6));
    background-image: -webkit-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);

    color: #3e5667;
    padding: 20px 40px 30px 40px;
   }

显示喜欢: old-image

然后我想添加一张图片,CSS变为:

   .featured .content-wrapper
   {
     background-color: #7ac0da;
     background-image: -ms-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
     background-image: -o-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
     background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7ac0da), color-stop(1, #a4d4e6));
     background-image: -webkit-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
     background-image: url('../Images/love.png');
     color: #3e5667;
     padding: 20px 40px 30px 40px;
   }

我只添加了一张图片

  

background-image:url('../ Images / love.png');

现在显示: new-image

我想要的是使背景颜色#3e5667仍然可见。

如何修改CSS?

3 个答案:

答案 0 :(得分:4)

您可以在CSS3中同时定义背景图像和渐变,如下所示:

background: #7ac0da;
background-image: url('../Images/love.png'); /* fallback */
background-image: url('../Images/love.png'), -webkit-gradient(linear, left top, left bottom, from(#7ac0da), to(#999999)); /* Saf4+, Chrome */
background-image: url('../Images/love.png'), -webkit-linear-gradient(top, #7ac0da , #a4d4e6 ); /* Chrome 10+, Saf5.1+ */
background-image: url('../Images/love.png'), -moz-linear-gradient(top, #7ac0da , #a4d4e6 ); /* FF3.6+ */
background-image: url('../Images/love.png'), -ms-linear-gradient(top, #7ac0da , #a4d4e6 ); /* IE10 */
background-image: url('../Images/love.png'), -o-linear-gradient(top, #7ac0da , #a4d4e6 ); /* Opera 11.10+ */
background-image: url('../Images/love.png'), linear-gradient(top, #7ac0da , #a4d4e6 ); /* W3C */ 

答案 1 :(得分:1)

您需要确保您的图片(love.png)具有透明背景。目前它有深灰色背景,并且显示在你在CSS中添加的蓝色顶部。

你可以尝试

background-repeat:no-repeat;
background-position:center center;

这是你的意思吗?

答案 2 :(得分:1)

这只是因为你用图像覆盖了bg。我建议在HTML中创建一个包装器或使用CSS psudo-element来补偿。

.featured .content-wrapper
{
   background-color: #7ac0da;
   background-image: -ms-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
   background-image: -o-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
   background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7ac0da), color-stop(1, #a4d4e6));
   background-image: -webkit-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
   color: #3e5667;
   padding: 20px 40px 30px 40px;

   position:relative;
}

.featured .content-wrapper:after
{
   content: '';
   position:absolute;
   background-image: url('../Images/love.png');
   width:100%;
   height:100%;
   left:0%;
   top:0%;
}

或类似的东西。请注意,这不适用于所有版本的IE,当然也要确保您的图像背景完全透明。

相关问题