Search code examples
htmlcsscss-shapes

How to add a gradient border above image (diagonal border)


I need to something like this

picture

But above an image, here is my first attempt but it doesn't work

http://jsfiddle.net/wo8gbhx3/17/

And this is my markup (now)

HTML

<div class="testing">
    <ul>
        <li class="selected unavailable">
            <a href="#">
                <img src="http://placehold.it/25x25"/>
            </a>
        </li>
    </ul>
</div>

CSS

.testing ul {
    list-style: none;
}
.testing ul li {
    width: 25px;
    height: 25px;
    position: relative;
}
.testing ul li img {
    width: 100%;
    height: 100%;
}
.unavailable:before {
    position: absolute;
    border: 2px solid green; /* Just for testing */
    background:repeating-linear-gradient( 150deg, #FFF, #FFF 16px, #000 18px);
}

Solution

  • You need something like this

    .testing ul {
      list-style: none;
    }
    .testing ul li {
      width: 250px;
      height: 250px;
    }
    .testing ul li img {
      width: 100%;
      height: 100%;
      display: block;
    }
    .unavailable {
      position: relative;
    }
    .unavailable a:after {
      content: '';
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      position: absolute;
      border: 2px solid green;
      /* Just for testing */
      background: repeating-linear-gradient(150deg, transparent, transparent 16px, #000 18px);
      z-index: 2;
    }
    <div class="testing">
      <ul>
        <li class="selected unavailable">
          <a href="#">
            <img src="http://placehold.it/200x200" />
          </a>
        </li>
      </ul>
    </div>