pourmesomecode
pourmesomecode

Reputation: 4358

CSS Background Stripes on div

So I have a square div and i'm trying to get the background to basically look like this :

enter image description here

I've had a look around, and since this question has been asked a lot i've seen CSS gradients used.

I've been playing about and ended up with:

background-image: linear-gradient(
  180deg, rgba(255, 255, 255, .2) 29%,
  transparent 20%,
  transparent 51%,
  rgba(255, 255, 255, .2) 50%,
  rgba(255, 255, 255, .2) 75%,
  transparent 75%,
  transparent);

However, gradients seem to blend the colours from one to another instead of having a sharp difference like below.

What should I be doing to achieve the picture?

Upvotes: 27

Views: 50878

Answers (4)

sdespont
sdespont

Reputation: 14025

A more flexible and elegant solution found here : https://css-tricks.com/stripes-css/

#stripes {
  height: 200px;
  width: 2000px;
  background-color:yellow;
}

.stripes {
    background: repeating-linear-gradient(
      45deg,
      transparent,
      transparent 10px,
      #000 10px,
      #000 20px
  );
}
<div id="stripes" class="stripes"></div>

https://jsfiddle.net/ns8rn7r3/4/

Upvotes: 17

Mihai T
Mihai T

Reputation: 17697

try this :

div#stripes {
  height: 200px;
  width: 200px;
  background-image: linear-gradient(45deg, #000 25%, transparent 25%, transparent 50%, #000 50%, #000 75%, transparent 75%, #fff);
  background-size: 50px 50px;
}
<div id="stripes">

</div>

jsfiddle

Upvotes: 26

Advaith
Advaith

Reputation: 2590

You can do like this:

background: repeating-linear-gradient(-45deg, #de9dd4, #de9dd4 5px, white 5px, white 10px);

Jsfiddle

Upvotes: 20

Sunil Gehlot
Sunil Gehlot

Reputation: 1589

Please use this CSS:

body{
  background: linear-gradient(45deg, white 25%, #000 25%, #000 50%, white 50%, white 75%, #000 75%);
  background-size:98px 98.9px;
}

See in action here

Upvotes: 3

Related Questions