From my tests: Chrome limits the size of the pseudo-elements :before
and :after
to 1900px (at least in this case): http://jsfiddle.net/xLF8r/4/
In your case, you set the padding/margins on .bottom
to 2900px/-2900px to so the gradient will be seen to the edge of the body. If you change that to 950px/-950px, they show up. If you set the width of the pseudo-elements to 1900px, they show up. If you set right: -280%
, they show up (it calculates in this instance to -1900px).
If you look at this fiddle in Firefox, the elements show up no matter what you set these sizes to.
Another test: Changing background-size allowed the element to get larger and stay visible: http://jsfiddle.net/xLF8r/6/
So if you increase your background-size and change your gradient to get it to look like you have it by adding more color-stops, it should work.
From these tests, it would appear that chrome limits the size of the pseudo element to be only 5 times larger than the background-size. 1900px / 380px = 5 in first test; 1901px makes the element disappear. 6900px / 1380px = 5 in the second test; 6901px makes the element disappear.
Edit for another test and for future reference I was curious, so I created a Codepen looking at some examples. Here, I'm able to go up to 10 times the background-size. Putting the same code into jsfiddle also shows that 10 times is working. So in your code, there is something that is reducing it to 5 times.
I've reduced your code to replicate this same behavior, and I'm still only getting 5 times larger instead of 10. I'm stumped as to why this is the case.