Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSS: Striped diamond

I can do a diamond, and I can do stripes with CSS. I'm having issues merging the two to get a striped diamond. Please see my fiddle (works on Chrome).

How can I make a striped diamond?

#diamond {
  width: 0;
  height: 0;
  border: 80px solid transparent;
  border-bottom: 40px solid red;
  position: relative;
  top: -80px
}
#diamond:after {
  content:'';
  position: absolute;
  left: -80px;
  top: 40px;
  width: 0;
  height: 0;
  border: 80px solid transparent;
  border-top: 40px solid red;
}

.stripes {
  height: 80px;
  width: 160px;
  background-size: 4px;
  background-color: red;
  background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(.5, rgba(255, 255, 255, 1)), color-stop(.5, transparent), to(transparent));
}
like image 845
Randomblue Avatar asked Jan 08 '13 22:01

Randomblue


2 Answers

You can actually do it with just 1 element and less CSS:

demo

The HTML is simply <div class='diamond'></div>

Relevant CSS:

.diamond {
    overflow: hidden;
    position: relative;
    padding: 20%;
    width: 0;
    transform: rotate(-30deg) skewX(30deg) scaleY(.866);
}
.diamond:before {
    position: absolute;
    top: 0%; right:  -37.5%; bottom:  0; left:  -37.5%;
    transform: scaleY(1.155) skewX(-30deg) rotate(30deg);
    background: linear-gradient(90deg, crimson 50%, transparent 50%);
    background-size: 6px;
    content: ''
}
like image 168
Ana Avatar answered Sep 30 '22 14:09

Ana


CSS striped diamond using the code you have given: http://jsfiddle.net/r3PNs/5/

HTML:

<div id="diamond"></div>
<div class="stripes" style=""></div>

CSS:

#diamond {
  width: 0;
  height: 0;
  border: 80px solid transparent;
  border-bottom: 40px solid red;
  position: relative;
  top: -80px;
}
#diamond:after {
  content:'';
  position: absolute;
  left: -80px;
  top: 40px;
  width: 0;
  height: 0;
  border: 80px solid transparent;
  border-top: 40px solid red;
}

.stripes {
  height: 80px;
  width: 160px;
  background-size: 4px;
  background-color: transparent;
  background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(.5, rgba(255, 255, 255, 1)), color-stop(.5, transparent), to(transparent));
  position:absolute;
  top:0;
}
like image 33
Omega Avatar answered Sep 30 '22 12:09

Omega