Gradient over img tag using css

后端 未结 4 1312
孤独总比滥情好
孤独总比滥情好 2020-12-31 00:42

I want to place a gradient over an tag. src attribute of the tag is angular-item. For example:

相关标签:
4条回答
  • 2020-12-31 00:57

    For 2020, mask-image can work well. It works in modern browsers (not IE, -webkit- prefix in many browsers currently). https://caniuse.com/#feat=css-masks

    img {
       height: 200px;
       width: auto;
       mask-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);
       -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);
    }
       <img src="http://i.imgur.com/HDssntn.jpg" />

    0 讨论(0)
  • 2020-12-31 01:00

    try placing a div over the image in question and placing the gradient on the div instead of the image.

    0 讨论(0)
  • 2020-12-31 01:04

    I recommend you to set background-color:black; to your container and then set class img{opacity:0.4}. Then you will get the same effect as you got with

    backgroundImage:linear-gradient(rgba(0, 0, 0, 0.8),rgba(0, 0, 0, 0.8),rgba(0, 0, 0, 0.8),rgba(0, 0, 0, 0.8)),url(img_url))
    

    My example on Slide:

    .Slide {
        position: relative;
        border: 1px solid blue;
        min-width: 100%;
        height: 100%;
        transition: 0.5s;
        background-color: rgb(0, 0, 0);
    }
    
    .Slide img{
        position: relative;
        border: 1px solid blue;
        min-width: 100%;
        height: 100%;
        transition: 0.5s;
        opacity: 0.4;
    }
    
    0 讨论(0)
  • 2020-12-31 01:07

    With z-index :

    You may use a container and put the gradient on that container. Then use a negative z-index to position image behind the gradient.

    .pickgradient {
      display:inline-block;
      background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); /* FF3.6+ */
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.65)), color-stop(100%,rgba(0,0,0,0))); /* Chrome,Safari4+ */
      background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Chrome10+,Safari5.1+ */
      background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Opera 11.10+ */
      background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* IE10+ */
      background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */
    }
    
    img{
      position:relative;
      z-index:-1;
      display:block;
      height:200px; width:auto;
    }
    <div class="pickgradient">
      <img src="http://i.imgur.com/HDssntn.jpg" />
    </div>


    With a pseudo element :

    As commented, you can also use a pseudo element with the gradient and absolute positioning to put the gradient over the image :

    .pickgradient{
      position:relative;
      display:inline-block;
    }
    .pickgradient:after {
      content:'';
      position:absolute;
      left:0; top:0;
      width:100%; height:100%;
      display:inline-block;
      background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); /* FF3.6+ */
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.65)), color-stop(100%,rgba(0,0,0,0))); /* Chrome,Safari4+ */
      background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Chrome10+,Safari5.1+ */
      background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Opera 11.10+ */
      background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* IE10+ */
      background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */
    }
    
    img{
      display:block;
      height:200px;width:auto;
    }
    <div class="pickgradient">
      <img src="http://i.imgur.com/HDssntn.jpg" />
    </div>

    0 讨论(0)
提交回复
热议问题